You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by GitBox <gi...@apache.org> on 2018/02/07 15:04:07 UTC

[GitHub] dewrich closed pull request #1659: TO -- tool to compare API output from 2 Traffic Ops

dewrich closed pull request #1659: TO -- tool to compare API output from 2 Traffic Ops
URL: https://github.com/apache/incubator-trafficcontrol/pull/1659
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/traffic_ops/testing/compare/.gitignore b/traffic_ops/testing/compare/.gitignore
new file mode 100644
index 0000000000..1a06816d83
--- /dev/null
+++ b/traffic_ops/testing/compare/.gitignore
@@ -0,0 +1 @@
+results
diff --git a/traffic_ops/testing/compare/README.md b/traffic_ops/testing/compare/README.md
new file mode 100644
index 0000000000..16740341e9
--- /dev/null
+++ b/traffic_ops/testing/compare/README.md
@@ -0,0 +1,54 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+# Traffic Ops Compare
+
+Use this tool to compare API output between two instances of Traffic Ops API.
+It logs in to each instance and then processes all given endpoints.  Any that get
+different results are reported and written to files in the output directory
+(default ./results).
+
+## Requirements
+
+Two Traffic Ops instances with login credentials (possibly different).  The following
+environment variables must be set:
+
+- `TO_URL`   -- the *reference* Traffic Ops (e.g. production version)
+- `TO_USER`  -- the username for `TO_URL`
+- `TO_PASSWORD`  -- the password for `TO_URL`
+
+- `TEST_URL` -- the *test* Traffic Ops (e.g. development version)
+
+These are optional:
+
+- `TEST_USER`  -- the username for `TO_URL` (default -- same as `TO_USER`)
+- `TEST_PASSWORD`  -- the password for `TO_URL` (default -- same as `TO_PASSWORD`)
+
+## Usage
+
+```
+   go run compare.go [-results <dir>] [-route <API route] [-file <file of routes>] [-snapshot]
+```
+
+Options:
+
+- `-results <dir>` -- directory to write difference results
+- `-route <route>` -- a specific route to compare
+- `-file <file>`   -- file containing routes to check (-route takes precedence)
+- `-snapshot`      -- compare snapshot for each CDN
diff --git a/traffic_ops/testing/compare/compare.go b/traffic_ops/testing/compare/compare.go
new file mode 100644
index 0000000000..50c34b6805
--- /dev/null
+++ b/traffic_ops/testing/compare/compare.go
@@ -0,0 +1,308 @@
+package main
+
+//
+// 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.
+//
+
+import (
+	"bufio"
+	"bytes"
+	"crypto/tls"
+	"encoding/json"
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"log"
+	"net/http"
+	"net/http/cookiejar"
+	"os"
+	"strings"
+	"sync"
+	"unicode"
+
+	"github.com/apache/incubator-trafficcontrol/lib/go-tc"
+	"github.com/kelseyhightower/envconfig"
+	"golang.org/x/net/publicsuffix"
+)
+
+// Environment variables used:
+//   TO_URL      -- URL for reference Traffic Ops
+//   TEST_URL    -- URL for test Traffic Ops
+//   TO_USER     -- Username for both instances
+//   TO_PASSWORD -- Password for both instances
+type Creds struct {
+	// common user/password
+	User     string `json:"u" required:"true"`
+	Password string `json:"p" required:"true"`
+}
+
+type Connect struct {
+	// URL of reference traffic_ops
+	URL         string       `required:"true"`
+	Client      *http.Client `ignore:"true"`
+	ResultsPath string       `ignore:"true"`
+	creds       Creds        `ignore:"true"`
+}
+
+func (to *Connect) login(creds Creds) error {
+	body, err := json.Marshal(creds)
+	if err != nil {
+		return err
+	}
+	tr := &http.Transport{
+		TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
+	}
+
+	to.Client = &http.Client{Transport: tr}
+	url := to.URL + `/api/1.3/user/login`
+	req, err := http.NewRequest("POST", url, bytes.NewBuffer(body))
+	if err != nil {
+		return err
+	}
+	req.Header.Set("Content-Type", "application/json")
+
+	// Create cookiejar so created cookie will be reused
+	jar, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List})
+	if err != nil {
+		return err
+	}
+	to.Client.Jar = jar
+
+	resp, err := to.Client.Do(req)
+	defer func() {
+		if resp != nil && resp.Body != nil {
+			resp.Body.Close()
+		}
+	}()
+
+	if err != nil {
+		return err
+	}
+	data, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return err
+	}
+
+	log.Printf("Logged in to %s: %s", to.URL, string(data))
+	return nil
+}
+
+func testRoute(tos []*Connect, route string) {
+	// keeps result along with instance -- no guarantee on order collected
+	type result struct {
+		TO  *Connect
+		Res string
+	}
+	var res []result
+	ch := make(chan result, len(tos))
+
+	var wg sync.WaitGroup
+	var m sync.Mutex
+
+	for _, to := range tos {
+		wg.Add(1)
+		go func(to *Connect) {
+			s, err := to.get(route)
+			if err != nil {
+				s = err.Error()
+			}
+			ch <- result{to, s}
+			wg.Done()
+		}(to)
+
+		wg.Add(1)
+		go func() {
+			m.Lock()
+			defer m.Unlock()
+			res = append(res, <-ch)
+			wg.Done()
+		}()
+	}
+	wg.Wait()
+	close(ch)
+
+	if res[0].Res == res[1].Res {
+		log.Printf("Identical results (%d bytes) from %s", len(res[0].Res), route)
+	} else {
+		log.Print("Diffs from ", route, " written to")
+		for _, r := range res {
+			p, err := r.TO.writeResults(route, r.Res)
+			if err != nil {
+				log.Fatal("Error writing results for ", route)
+			}
+			log.Print("  ", p)
+		}
+	}
+}
+
+func (to *Connect) writeResults(route string, res string) (string, error) {
+	var dst bytes.Buffer
+	json.Indent(&dst, []byte(res), "", "  ")
+
+	m := func(r rune) rune {
+		if unicode.IsPunct(r) && r != '.' || unicode.IsSymbol(r) {
+			return '-'
+		}
+		return r
+	}
+
+	err := os.MkdirAll(to.ResultsPath, 0755)
+	if err != nil {
+		return "", err
+	}
+
+	p := to.ResultsPath + "/" + strings.Map(m, route)
+	err = ioutil.WriteFile(p, dst.Bytes(), 0644)
+	return p, err
+}
+
+func (to *Connect) get(route string) (string, error) {
+	url := to.URL + `/` + route
+	req, err := http.NewRequest("GET", url, nil)
+	if err != nil {
+		return "", err
+	}
+	req.Header.Set("Content-Type", "application/json")
+
+	resp, err := to.Client.Do(req)
+	if err != nil {
+		return "", err
+	}
+	defer resp.Body.Close()
+
+	data, err := ioutil.ReadAll(resp.Body)
+	return string(data), err
+}
+
+func (to *Connect) getCDNNames() ([]string, error) {
+	res, err := to.get(`api/1.3/cdns`)
+	if err != nil {
+		return nil, err
+	}
+	fmt.Println(res)
+
+	var cdnResp tc.CDNsResponse
+
+	err = json.Unmarshal([]byte(res), &cdnResp)
+	if err != nil {
+		return nil, err
+	}
+	var cdnNames []string
+	for _, c := range cdnResp.Response {
+		cdnNames = append(cdnNames, c.Name)
+	}
+	return cdnNames, nil
+}
+
+func main() {
+	var routesFile string
+	var route string
+	var resultsPath string
+	var doSnapshot bool
+
+	flag.StringVar(&routesFile, "file", "./testroutes.txt", "File listing routes to test (ignored if -route is used)")
+	flag.StringVar(&route, "route", "", "Single route to test")
+	flag.StringVar(&resultsPath, "results", "results", "Directory to write results")
+	flag.BoolVar(&doSnapshot, "snapshot", false, "Do snapshot comparison for each CDN")
+	flag.Parse()
+
+	// refTO, testTO are connections to the two Traffic Ops instances
+	var refTO = &Connect{ResultsPath: resultsPath + `/ref`}
+	var testTO = &Connect{ResultsPath: resultsPath + `/test`}
+
+	err := envconfig.Process("TO", &refTO.creds)
+	if err != nil {
+		log.Fatal(err.Error())
+	}
+	err = envconfig.Process("TEST", &testTO.creds)
+	if err != nil {
+		// if not provided, re-use the same credentials
+		testTO.creds = refTO.creds
+	}
+
+	err = envconfig.Process("TO", refTO)
+	if err != nil {
+		log.Fatal(err.Error())
+	}
+	err = envconfig.Process("TEST", testTO)
+	if err != nil {
+		log.Fatal(err.Error())
+	}
+
+	tos := []*Connect{refTO, testTO}
+
+	// Login to the 2 Traffic Ops instances concurrently
+	var wg sync.WaitGroup
+	wg.Add(len(tos))
+	for _, t := range tos {
+		go func(to *Connect) {
+			log.Print("Login to ", to.URL)
+			err := to.login(to.creds)
+			if err != nil {
+				log.Fatal(err)
+			}
+			wg.Done()
+		}(t)
+	}
+	wg.Wait()
+
+	var testRoutes []string
+
+	if route != "" {
+		// -route (specify single route) takes precedence
+		testRoutes = append(testRoutes, route)
+	} else if routesFile != "" {
+		// -file (specify  route) takes precedence
+		file, err := os.Open(routesFile)
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer file.Close()
+
+		scanner := bufio.NewScanner(file)
+		for scanner.Scan() {
+			testRoutes = append(testRoutes, scanner.Text())
+		}
+
+		if err := scanner.Err(); err != nil {
+			log.Fatal(err)
+		}
+	}
+
+	wg.Add(len(testRoutes))
+	for _, route := range testRoutes {
+		go func(r string) {
+			testRoute(tos, r)
+			wg.Done()
+		}(route)
+	}
+	wg.Wait()
+
+	if doSnapshot {
+		cdnNames, err := refTO.getCDNNames()
+		if err != nil {
+			panic(err)
+		}
+		log.Printf("CDNNames are %+v", cdnNames)
+
+		wg.Add(len(cdnNames))
+		for _, cdnName := range cdnNames {
+			log.Print("CDN ", cdnName)
+			go func(c string) {
+				testRoute(tos, `api/1.3/cdns/`+c+`/snapshot/new`)
+				wg.Done()
+			}(cdnName)
+		}
+		wg.Wait()
+	}
+}
diff --git a/traffic_ops/testing/compare/testroutes.txt b/traffic_ops/testing/compare/testroutes.txt
new file mode 100644
index 0000000000..27e768c763
--- /dev/null
+++ b/traffic_ops/testing/compare/testroutes.txt
@@ -0,0 +1,9 @@
+api/1.3/asns?orderby=id
+api/1.3/cdns?orderby=id
+api/1.3/divisions?orderby=id
+api/1.3/parameters?orderby=id
+api/1.3/phys_locations?orderby=id
+api/1.3/regions?orderby=id
+api/1.3/servers?orderby=id
+api/1.3/statuses?orderby=id
+api/1.3/profiles?orderby=id
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/LICENSE b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/LICENSE
new file mode 100644
index 0000000000..4bfa7a84d8
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2013 Kelsey Hightower
+
+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/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS
new file mode 100644
index 0000000000..6527a9f2cc
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS
@@ -0,0 +1,2 @@
+Kelsey Hightower kelsey.hightower@gmail.com github.com/kelseyhightower
+Travis Parker    travis.parker@gmail.com    github.com/teepark
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/README.md b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/README.md
new file mode 100644
index 0000000000..3e8fdc6938
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/README.md
@@ -0,0 +1,188 @@
+# envconfig
+
+[![Build Status](https://travis-ci.org/kelseyhightower/envconfig.svg)](https://travis-ci.org/kelseyhightower/envconfig)
+
+```Go
+import "github.com/kelseyhightower/envconfig"
+```
+
+## Documentation
+
+See [godoc](http://godoc.org/github.com/kelseyhightower/envconfig)
+
+## Usage
+
+Set some environment variables:
+
+```Bash
+export MYAPP_DEBUG=false
+export MYAPP_PORT=8080
+export MYAPP_USER=Kelsey
+export MYAPP_RATE="0.5"
+export MYAPP_TIMEOUT="3m"
+export MYAPP_USERS="rob,ken,robert"
+export MYAPP_COLORCODES="red:1,green:2,blue:3"
+```
+
+Write some code:
+
+```Go
+package main
+
+import (
+    "fmt"
+    "log"
+    "time"
+
+    "github.com/kelseyhightower/envconfig"
+)
+
+type Specification struct {
+    Debug       bool
+    Port        int
+    User        string
+    Users       []string
+    Rate        float32
+    Timeout     time.Duration
+    ColorCodes  map[string]int
+}
+
+func main() {
+    var s Specification
+    err := envconfig.Process("myapp", &s)
+    if err != nil {
+        log.Fatal(err.Error())
+    }
+    format := "Debug: %v\nPort: %d\nUser: %s\nRate: %f\nTimeout: %s\n"
+    _, err = fmt.Printf(format, s.Debug, s.Port, s.User, s.Rate, s.Timeout)
+    if err != nil {
+        log.Fatal(err.Error())
+    }
+
+    fmt.Println("Users:")
+    for _, u := range s.Users {
+        fmt.Printf("  %s\n", u)
+    }
+
+    fmt.Println("Color codes:")
+    for k, v := range s.ColorCodes {
+        fmt.Printf("  %s: %d\n", k, v)
+    }
+}
+```
+
+Results:
+
+```Bash
+Debug: false
+Port: 8080
+User: Kelsey
+Rate: 0.500000
+Timeout: 3m0s
+Users:
+  rob
+  ken
+  robert
+Color codes:
+  red: 1
+  green: 2
+  blue: 3
+```
+
+## Struct Tag Support
+
+Envconfig supports the use of struct tags to specify alternate, default, and required
+environment variables.
+
+For example, consider the following struct:
+
+```Go
+type Specification struct {
+    ManualOverride1 string `envconfig:"manual_override_1"`
+    DefaultVar      string `default:"foobar"`
+    RequiredVar     string `required:"true"`
+    IgnoredVar      string `ignored:"true"`
+    AutoSplitVar    string `split_words:"true"`
+}
+```
+
+Envconfig has automatic support for CamelCased struct elements when the
+`split_words:"true"` tag is supplied. Without this tag, `AutoSplitVar` above
+would look for an environment variable called `MYAPP_AUTOSPLITVAR`. With the
+setting applied it will look for `MYAPP_AUTO_SPLIT_VAR`. Note that numbers
+will get globbed into the previous word. If the setting does not do the
+right thing, you may use a manual override.
+
+Envconfig will process value for `ManualOverride1` by populating it with the
+value for `MYAPP_MANUAL_OVERRIDE_1`. Without this struct tag, it would have
+instead looked up `MYAPP_MANUALOVERRIDE1`. With the `split_words:"true"` tag
+it would have looked up `MYAPP_MANUAL_OVERRIDE1`.
+
+```Bash
+export MYAPP_MANUAL_OVERRIDE_1="this will be the value"
+
+# export MYAPP_MANUALOVERRIDE1="and this will not"
+```
+
+If envconfig can't find an environment variable value for `MYAPP_DEFAULTVAR`,
+it will populate it with "foobar" as a default value.
+
+If envconfig can't find an environment variable value for `MYAPP_REQUIREDVAR`,
+it will return an error when asked to process the struct.
+
+If envconfig can't find an environment variable in the form `PREFIX_MYVAR`, and there
+is a struct tag defined, it will try to populate your variable with an environment
+variable that directly matches the envconfig tag in your struct definition:
+
+```shell
+export SERVICE_HOST=127.0.0.1
+export MYAPP_DEBUG=true
+```
+```Go
+type Specification struct {
+    ServiceHost string `envconfig:"SERVICE_HOST"`
+    Debug       bool
+}
+```
+
+Envconfig won't process a field with the "ignored" tag set to "true", even if a corresponding
+environment variable is set.
+
+## Supported Struct Field Types
+
+envconfig supports supports these struct field types:
+
+  * string
+  * int8, int16, int32, int64
+  * bool
+  * float32, float64
+  * slices of any supported type
+  * maps (keys and values of any supported type)
+  * [encoding.TextUnmarshaler](https://golang.org/pkg/encoding/#TextUnmarshaler)
+
+Embedded structs using these fields are also supported.
+
+## Custom Decoders
+
+Any field whose type (or pointer-to-type) implements `envconfig.Decoder` can
+control its own deserialization:
+
+```Bash
+export DNS_SERVER=8.8.8.8
+```
+
+```Go
+type IPDecoder net.IP
+
+func (ipd *IPDecoder) Decode(value string) error {
+    *ipd = IPDecoder(net.ParseIP(value))
+    return nil
+}
+
+type DNSConfig struct {
+    Address IPDecoder `envconfig:"DNS_SERVER"`
+}
+```
+
+Also, envconfig will use a `Set(string) error` method like from the
+[flag.Value](https://godoc.org/flag#Value) interface if implemented.
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/doc.go b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/doc.go
new file mode 100644
index 0000000000..f28561cd1c
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/doc.go
@@ -0,0 +1,8 @@
+// Copyright (c) 2013 Kelsey Hightower. All rights reserved.
+// Use of this source code is governed by the MIT License that can be found in
+// the LICENSE file.
+
+// Package envconfig implements decoding of environment variables based on a user
+// defined specification. A typical use is using environment variables for
+// configuration settings.
+package envconfig
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_os.go b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_os.go
new file mode 100644
index 0000000000..a6a014a2b4
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_os.go
@@ -0,0 +1,7 @@
+// +build appengine
+
+package envconfig
+
+import "os"
+
+var lookupEnv = os.LookupEnv
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_syscall.go b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_syscall.go
new file mode 100644
index 0000000000..9d98085b99
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/env_syscall.go
@@ -0,0 +1,7 @@
+// +build !appengine
+
+package envconfig
+
+import "syscall"
+
+var lookupEnv = syscall.Getenv
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/envconfig.go b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/envconfig.go
new file mode 100644
index 0000000000..10f2de8d73
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/envconfig.go
@@ -0,0 +1,326 @@
+// Copyright (c) 2013 Kelsey Hightower. All rights reserved.
+// Use of this source code is governed by the MIT License that can be found in
+// the LICENSE file.
+
+package envconfig
+
+import (
+	"encoding"
+	"errors"
+	"fmt"
+	"reflect"
+	"regexp"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// ErrInvalidSpecification indicates that a specification is of the wrong type.
+var ErrInvalidSpecification = errors.New("specification must be a struct pointer")
+
+// A ParseError occurs when an environment variable cannot be converted to
+// the type required by a struct field during assignment.
+type ParseError struct {
+	KeyName   string
+	FieldName string
+	TypeName  string
+	Value     string
+	Err       error
+}
+
+// Decoder has the same semantics as Setter, but takes higher precedence.
+// It is provided for historical compatibility.
+type Decoder interface {
+	Decode(value string) error
+}
+
+// Setter is implemented by types can self-deserialize values.
+// Any type that implements flag.Value also implements Setter.
+type Setter interface {
+	Set(value string) error
+}
+
+func (e *ParseError) Error() string {
+	return fmt.Sprintf("envconfig.Process: assigning %[1]s to %[2]s: converting '%[3]s' to type %[4]s. details: %[5]s", e.KeyName, e.FieldName, e.Value, e.TypeName, e.Err)
+}
+
+// varInfo maintains information about the configuration variable
+type varInfo struct {
+	Name  string
+	Alt   string
+	Key   string
+	Field reflect.Value
+	Tags  reflect.StructTag
+}
+
+// GatherInfo gathers information about the specified struct
+func gatherInfo(prefix string, spec interface{}) ([]varInfo, error) {
+	expr := regexp.MustCompile("([^A-Z]+|[A-Z][^A-Z]+|[A-Z]+)")
+	s := reflect.ValueOf(spec)
+
+	if s.Kind() != reflect.Ptr {
+		return nil, ErrInvalidSpecification
+	}
+	s = s.Elem()
+	if s.Kind() != reflect.Struct {
+		return nil, ErrInvalidSpecification
+	}
+	typeOfSpec := s.Type()
+
+	// over allocate an info array, we will extend if needed later
+	infos := make([]varInfo, 0, s.NumField())
+	for i := 0; i < s.NumField(); i++ {
+		f := s.Field(i)
+		ftype := typeOfSpec.Field(i)
+		if !f.CanSet() || isTrue(ftype.Tag.Get("ignored")) {
+			continue
+		}
+
+		for f.Kind() == reflect.Ptr {
+			if f.IsNil() {
+				if f.Type().Elem().Kind() != reflect.Struct {
+					// nil pointer to a non-struct: leave it alone
+					break
+				}
+				// nil pointer to struct: create a zero instance
+				f.Set(reflect.New(f.Type().Elem()))
+			}
+			f = f.Elem()
+		}
+
+		// Capture information about the config variable
+		info := varInfo{
+			Name:  ftype.Name,
+			Field: f,
+			Tags:  ftype.Tag,
+			Alt:   strings.ToUpper(ftype.Tag.Get("envconfig")),
+		}
+
+		// Default to the field name as the env var name (will be upcased)
+		info.Key = info.Name
+
+		// Best effort to un-pick camel casing as separate words
+		if isTrue(ftype.Tag.Get("split_words")) {
+			words := expr.FindAllStringSubmatch(ftype.Name, -1)
+			if len(words) > 0 {
+				var name []string
+				for _, words := range words {
+					name = append(name, words[0])
+				}
+
+				info.Key = strings.Join(name, "_")
+			}
+		}
+		if info.Alt != "" {
+			info.Key = info.Alt
+		}
+		if prefix != "" {
+			info.Key = fmt.Sprintf("%s_%s", prefix, info.Key)
+		}
+		info.Key = strings.ToUpper(info.Key)
+		infos = append(infos, info)
+
+		if f.Kind() == reflect.Struct {
+			// honor Decode if present
+			if decoderFrom(f) == nil && setterFrom(f) == nil && textUnmarshaler(f) == nil {
+				innerPrefix := prefix
+				if !ftype.Anonymous {
+					innerPrefix = info.Key
+				}
+
+				embeddedPtr := f.Addr().Interface()
+				embeddedInfos, err := gatherInfo(innerPrefix, embeddedPtr)
+				if err != nil {
+					return nil, err
+				}
+				infos = append(infos[:len(infos)-1], embeddedInfos...)
+
+				continue
+			}
+		}
+	}
+	return infos, nil
+}
+
+// Process populates the specified struct based on environment variables
+func Process(prefix string, spec interface{}) error {
+	infos, err := gatherInfo(prefix, spec)
+
+	for _, info := range infos {
+
+		// `os.Getenv` cannot differentiate between an explicitly set empty value
+		// and an unset value. `os.LookupEnv` is preferred to `syscall.Getenv`,
+		// but it is only available in go1.5 or newer. We're using Go build tags
+		// here to use os.LookupEnv for >=go1.5
+		value, ok := lookupEnv(info.Key)
+		if !ok && info.Alt != "" {
+			value, ok = lookupEnv(info.Alt)
+		}
+
+		def := info.Tags.Get("default")
+		if def != "" && !ok {
+			value = def
+		}
+
+		req := info.Tags.Get("required")
+		if !ok && def == "" {
+			if isTrue(req) {
+				return fmt.Errorf("required key %s missing value", info.Key)
+			}
+			continue
+		}
+
+		err := processField(value, info.Field)
+		if err != nil {
+			return &ParseError{
+				KeyName:   info.Key,
+				FieldName: info.Name,
+				TypeName:  info.Field.Type().String(),
+				Value:     value,
+				Err:       err,
+			}
+		}
+	}
+
+	return err
+}
+
+// MustProcess is the same as Process but panics if an error occurs
+func MustProcess(prefix string, spec interface{}) {
+	if err := Process(prefix, spec); err != nil {
+		panic(err)
+	}
+}
+
+func processField(value string, field reflect.Value) error {
+	typ := field.Type()
+
+	decoder := decoderFrom(field)
+	if decoder != nil {
+		return decoder.Decode(value)
+	}
+	// look for Set method if Decode not defined
+	setter := setterFrom(field)
+	if setter != nil {
+		return setter.Set(value)
+	}
+
+	if t := textUnmarshaler(field); t != nil {
+		return t.UnmarshalText([]byte(value))
+	}
+
+	if typ.Kind() == reflect.Ptr {
+		typ = typ.Elem()
+		if field.IsNil() {
+			field.Set(reflect.New(typ))
+		}
+		field = field.Elem()
+	}
+
+	switch typ.Kind() {
+	case reflect.String:
+		field.SetString(value)
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		var (
+			val int64
+			err error
+		)
+		if field.Kind() == reflect.Int64 && typ.PkgPath() == "time" && typ.Name() == "Duration" {
+			var d time.Duration
+			d, err = time.ParseDuration(value)
+			val = int64(d)
+		} else {
+			val, err = strconv.ParseInt(value, 0, typ.Bits())
+		}
+		if err != nil {
+			return err
+		}
+
+		field.SetInt(val)
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+		val, err := strconv.ParseUint(value, 0, typ.Bits())
+		if err != nil {
+			return err
+		}
+		field.SetUint(val)
+	case reflect.Bool:
+		val, err := strconv.ParseBool(value)
+		if err != nil {
+			return err
+		}
+		field.SetBool(val)
+	case reflect.Float32, reflect.Float64:
+		val, err := strconv.ParseFloat(value, typ.Bits())
+		if err != nil {
+			return err
+		}
+		field.SetFloat(val)
+	case reflect.Slice:
+		vals := strings.Split(value, ",")
+		sl := reflect.MakeSlice(typ, len(vals), len(vals))
+		for i, val := range vals {
+			err := processField(val, sl.Index(i))
+			if err != nil {
+				return err
+			}
+		}
+		field.Set(sl)
+	case reflect.Map:
+		mp := reflect.MakeMap(typ)
+		if len(strings.TrimSpace(value)) != 0 {
+			pairs := strings.Split(value, ",")
+			for _, pair := range pairs {
+				kvpair := strings.Split(pair, ":")
+				if len(kvpair) != 2 {
+					return fmt.Errorf("invalid map item: %q", pair)
+				}
+				k := reflect.New(typ.Key()).Elem()
+				err := processField(kvpair[0], k)
+				if err != nil {
+					return err
+				}
+				v := reflect.New(typ.Elem()).Elem()
+				err = processField(kvpair[1], v)
+				if err != nil {
+					return err
+				}
+				mp.SetMapIndex(k, v)
+			}
+		}
+		field.Set(mp)
+	}
+
+	return nil
+}
+
+func interfaceFrom(field reflect.Value, fn func(interface{}, *bool)) {
+	// it may be impossible for a struct field to fail this check
+	if !field.CanInterface() {
+		return
+	}
+	var ok bool
+	fn(field.Interface(), &ok)
+	if !ok && field.CanAddr() {
+		fn(field.Addr().Interface(), &ok)
+	}
+}
+
+func decoderFrom(field reflect.Value) (d Decoder) {
+	interfaceFrom(field, func(v interface{}, ok *bool) { d, *ok = v.(Decoder) })
+	return d
+}
+
+func setterFrom(field reflect.Value) (s Setter) {
+	interfaceFrom(field, func(v interface{}, ok *bool) { s, *ok = v.(Setter) })
+	return s
+}
+
+func textUnmarshaler(field reflect.Value) (t encoding.TextUnmarshaler) {
+	interfaceFrom(field, func(v interface{}, ok *bool) { t, *ok = v.(encoding.TextUnmarshaler) })
+	return t
+}
+
+func isTrue(s string) bool {
+	b, _ := strconv.ParseBool(s)
+	return b
+}
diff --git a/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/usage.go b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/usage.go
new file mode 100644
index 0000000000..089f8c8a41
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/github.com/kelseyhightower/envconfig/usage.go
@@ -0,0 +1,158 @@
+// Copyright (c) 2016 Kelsey Hightower and others. All rights reserved.
+// Use of this source code is governed by the MIT License that can be found in
+// the LICENSE file.
+
+package envconfig
+
+import (
+	"encoding"
+	"fmt"
+	"io"
+	"os"
+	"reflect"
+	"strconv"
+	"strings"
+	"text/tabwriter"
+	"text/template"
+)
+
+const (
+	// DefaultListFormat constant to use to display usage in a list format
+	DefaultListFormat = `This application is configured via the environment. The following environment
+variables can be used:
+{{range .}}
+{{usage_key .}}
+  [description] {{usage_description .}}
+  [type]        {{usage_type .}}
+  [default]     {{usage_default .}}
+  [required]    {{usage_required .}}{{end}}
+`
+	// DefaultTableFormat constant to use to display usage in a tabular format
+	DefaultTableFormat = `This application is configured via the environment. The following environment
+variables can be used:
+
+KEY	TYPE	DEFAULT	REQUIRED	DESCRIPTION
+{{range .}}{{usage_key .}}	{{usage_type .}}	{{usage_default .}}	{{usage_required .}}	{{usage_description .}}
+{{end}}`
+)
+
+var (
+	decoderType     = reflect.TypeOf((*Decoder)(nil)).Elem()
+	setterType      = reflect.TypeOf((*Setter)(nil)).Elem()
+	unmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()
+)
+
+func implementsInterface(t reflect.Type) bool {
+	return t.Implements(decoderType) ||
+		reflect.PtrTo(t).Implements(decoderType) ||
+		t.Implements(setterType) ||
+		reflect.PtrTo(t).Implements(setterType) ||
+		t.Implements(unmarshalerType) ||
+		reflect.PtrTo(t).Implements(unmarshalerType)
+}
+
+// toTypeDescription converts Go types into a human readable description
+func toTypeDescription(t reflect.Type) string {
+	switch t.Kind() {
+	case reflect.Array, reflect.Slice:
+		return fmt.Sprintf("Comma-separated list of %s", toTypeDescription(t.Elem()))
+	case reflect.Map:
+		return fmt.Sprintf(
+			"Comma-separated list of %s:%s pairs",
+			toTypeDescription(t.Key()),
+			toTypeDescription(t.Elem()),
+		)
+	case reflect.Ptr:
+		return toTypeDescription(t.Elem())
+	case reflect.Struct:
+		if implementsInterface(t) && t.Name() != "" {
+			return t.Name()
+		}
+		return ""
+	case reflect.String:
+		name := t.Name()
+		if name != "" && name != "string" {
+			return name
+		}
+		return "String"
+	case reflect.Bool:
+		name := t.Name()
+		if name != "" && name != "bool" {
+			return name
+		}
+		return "True or False"
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		name := t.Name()
+		if name != "" && !strings.HasPrefix(name, "int") {
+			return name
+		}
+		return "Integer"
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+		name := t.Name()
+		if name != "" && !strings.HasPrefix(name, "uint") {
+			return name
+		}
+		return "Unsigned Integer"
+	case reflect.Float32, reflect.Float64:
+		name := t.Name()
+		if name != "" && !strings.HasPrefix(name, "float") {
+			return name
+		}
+		return "Float"
+	}
+	return fmt.Sprintf("%+v", t)
+}
+
+// Usage writes usage information to stderr using the default header and table format
+func Usage(prefix string, spec interface{}) error {
+	// The default is to output the usage information as a table
+	// Create tabwriter instance to support table output
+	tabs := tabwriter.NewWriter(os.Stdout, 1, 0, 4, ' ', 0)
+
+	err := Usagef(prefix, spec, tabs, DefaultTableFormat)
+	tabs.Flush()
+	return err
+}
+
+// Usagef writes usage information to the specified io.Writer using the specifed template specification
+func Usagef(prefix string, spec interface{}, out io.Writer, format string) error {
+
+	// Specify the default usage template functions
+	functions := template.FuncMap{
+		"usage_key":         func(v varInfo) string { return v.Key },
+		"usage_description": func(v varInfo) string { return v.Tags.Get("desc") },
+		"usage_type":        func(v varInfo) string { return toTypeDescription(v.Field.Type()) },
+		"usage_default":     func(v varInfo) string { return v.Tags.Get("default") },
+		"usage_required": func(v varInfo) (string, error) {
+			req := v.Tags.Get("required")
+			if req != "" {
+				reqB, err := strconv.ParseBool(req)
+				if err != nil {
+					return "", err
+				}
+				if reqB {
+					req = "true"
+				}
+			}
+			return req, nil
+		},
+	}
+
+	tmpl, err := template.New("envconfig").Funcs(functions).Parse(format)
+	if err != nil {
+		return err
+	}
+
+	return Usaget(prefix, spec, out, tmpl)
+}
+
+// Usaget writes usage information to the specified io.Writer using the specified template
+func Usaget(prefix string, spec interface{}, out io.Writer, tmpl *template.Template) error {
+	// gather first
+	infos, err := gatherInfo(prefix, spec)
+	if err != nil {
+		return err
+	}
+
+	return tmpl.Execute(out, infos)
+}
diff --git a/traffic_ops/testing/compare/vendor/golang.org/x/net/LICENSE b/traffic_ops/testing/compare/vendor/golang.org/x/net/LICENSE
new file mode 100644
index 0000000000..6a66aea5ea
--- /dev/null
+++ b/traffic_ops/testing/compare/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/traffic_ops/testing/compare/vendor/golang.org/x/net/PATENTS b/traffic_ops/testing/compare/vendor/golang.org/x/net/PATENTS
new file mode 100644
index 0000000000..733099041f
--- /dev/null
+++ b/traffic_ops/testing/compare/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/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/gen.go b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/gen.go
new file mode 100644
index 0000000000..f85a3c32b1
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/gen.go
@@ -0,0 +1,713 @@
+// 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 based on the authoritative
+// public suffix list at https://publicsuffix.org/list/effective_tld_names.dat
+//
+// The version is derived from
+// https://api.github.com/repos/publicsuffix/list/commits?path=public_suffix_list.dat
+// and a human-readable form is at
+// https://github.com/publicsuffix/list/commits/master/public_suffix_list.dat
+//
+// To fetch a particular git revision, such as 5c70ccd250, pass
+// -url "https://raw.githubusercontent.com/publicsuffix/list/5c70ccd250/public_suffix_list.dat"
+// and -version "an explicit version string".
+
+import (
+	"bufio"
+	"bytes"
+	"flag"
+	"fmt"
+	"go/format"
+	"io"
+	"io/ioutil"
+	"net/http"
+	"os"
+	"regexp"
+	"sort"
+	"strings"
+
+	"golang.org/x/net/idna"
+)
+
+const (
+	// These sum of these four values must be no greater than 32.
+	nodesBitsChildren   = 10
+	nodesBitsICANN      = 1
+	nodesBitsTextOffset = 15
+	nodesBitsTextLength = 6
+
+	// These sum of these four values must be no greater than 32.
+	childrenBitsWildcard = 1
+	childrenBitsNodeType = 2
+	childrenBitsHi       = 14
+	childrenBitsLo       = 14
+)
+
+var (
+	maxChildren   int
+	maxTextOffset int
+	maxTextLength int
+	maxHi         uint32
+	maxLo         uint32
+)
+
+func max(a, b int) int {
+	if a < b {
+		return b
+	}
+	return a
+}
+
+func u32max(a, b uint32) uint32 {
+	if a < b {
+		return b
+	}
+	return a
+}
+
+const (
+	nodeTypeNormal     = 0
+	nodeTypeException  = 1
+	nodeTypeParentOnly = 2
+	numNodeType        = 3
+)
+
+func nodeTypeStr(n int) string {
+	switch n {
+	case nodeTypeNormal:
+		return "+"
+	case nodeTypeException:
+		return "!"
+	case nodeTypeParentOnly:
+		return "o"
+	}
+	panic("unreachable")
+}
+
+const (
+	defaultURL   = "https://publicsuffix.org/list/effective_tld_names.dat"
+	gitCommitURL = "https://api.github.com/repos/publicsuffix/list/commits?path=public_suffix_list.dat"
+)
+
+var (
+	labelEncoding = map[string]uint32{}
+	labelsList    = []string{}
+	labelsMap     = map[string]bool{}
+	rules         = []string{}
+
+	// validSuffixRE is used to check that the entries in the public suffix
+	// list are in canonical form (after Punycode encoding). Specifically,
+	// capital letters are not allowed.
+	validSuffixRE = regexp.MustCompile(`^[a-z0-9_\!\*\-\.]+$`)
+
+	shaRE  = regexp.MustCompile(`"sha":"([^"]+)"`)
+	dateRE = regexp.MustCompile(`"committer":{[^{]+"date":"([^"]+)"`)
+
+	comments = flag.Bool("comments", false, "generate table.go comments, for debugging")
+	subset   = flag.Bool("subset", false, "generate only a subset of the full table, for debugging")
+	url      = flag.String("url", defaultURL, "URL of the publicsuffix.org list. If empty, stdin is read instead")
+	v        = flag.Bool("v", false, "verbose output (to stderr)")
+	version  = flag.String("version", "", "the effective_tld_names.dat version")
+)
+
+func main() {
+	if err := main1(); err != nil {
+		fmt.Fprintln(os.Stderr, err)
+		os.Exit(1)
+	}
+}
+
+func main1() error {
+	flag.Parse()
+	if nodesBitsTextLength+nodesBitsTextOffset+nodesBitsICANN+nodesBitsChildren > 32 {
+		return fmt.Errorf("not enough bits to encode the nodes table")
+	}
+	if childrenBitsLo+childrenBitsHi+childrenBitsNodeType+childrenBitsWildcard > 32 {
+		return fmt.Errorf("not enough bits to encode the children table")
+	}
+	if *version == "" {
+		if *url != defaultURL {
+			return fmt.Errorf("-version was not specified, and the -url is not the default one")
+		}
+		sha, date, err := gitCommit()
+		if err != nil {
+			return err
+		}
+		*version = fmt.Sprintf("publicsuffix.org's public_suffix_list.dat, git revision %s (%s)", sha, date)
+	}
+	var r io.Reader = os.Stdin
+	if *url != "" {
+		res, err := http.Get(*url)
+		if err != nil {
+			return err
+		}
+		if res.StatusCode != http.StatusOK {
+			return fmt.Errorf("bad GET status for %s: %d", *url, res.Status)
+		}
+		r = res.Body
+		defer res.Body.Close()
+	}
+
+	var root node
+	icann := false
+	br := bufio.NewReader(r)
+	for {
+		s, err := br.ReadString('\n')
+		if err != nil {
+			if err == io.EOF {
+				break
+			}
+			return err
+		}
+		s = strings.TrimSpace(s)
+		if strings.Contains(s, "BEGIN ICANN DOMAINS") {
+			icann = true
+			continue
+		}
+		if strings.Contains(s, "END ICANN DOMAINS") {
+			icann = false
+			continue
+		}
+		if s == "" || strings.HasPrefix(s, "//") {
+			continue
+		}
+		s, err = idna.ToASCII(s)
+		if err != nil {
+			return err
+		}
+		if !validSuffixRE.MatchString(s) {
+			return fmt.Errorf("bad publicsuffix.org list data: %q", s)
+		}
+
+		if *subset {
+			switch {
+			case s == "ac.jp" || strings.HasSuffix(s, ".ac.jp"):
+			case s == "ak.us" || strings.HasSuffix(s, ".ak.us"):
+			case s == "ao" || strings.HasSuffix(s, ".ao"):
+			case s == "ar" || strings.HasSuffix(s, ".ar"):
+			case s == "arpa" || strings.HasSuffix(s, ".arpa"):
+			case s == "cy" || strings.HasSuffix(s, ".cy"):
+			case s == "dyndns.org" || strings.HasSuffix(s, ".dyndns.org"):
+			case s == "jp":
+			case s == "kobe.jp" || strings.HasSuffix(s, ".kobe.jp"):
+			case s == "kyoto.jp" || strings.HasSuffix(s, ".kyoto.jp"):
+			case s == "om" || strings.HasSuffix(s, ".om"):
+			case s == "uk" || strings.HasSuffix(s, ".uk"):
+			case s == "uk.com" || strings.HasSuffix(s, ".uk.com"):
+			case s == "tw" || strings.HasSuffix(s, ".tw"):
+			case s == "zw" || strings.HasSuffix(s, ".zw"):
+			case s == "xn--p1ai" || strings.HasSuffix(s, ".xn--p1ai"):
+				// xn--p1ai is Russian-Cyrillic "??".
+			default:
+				continue
+			}
+		}
+
+		rules = append(rules, s)
+
+		nt, wildcard := nodeTypeNormal, false
+		switch {
+		case strings.HasPrefix(s, "*."):
+			s, nt = s[2:], nodeTypeParentOnly
+			wildcard = true
+		case strings.HasPrefix(s, "!"):
+			s, nt = s[1:], nodeTypeException
+		}
+		labels := strings.Split(s, ".")
+		for n, i := &root, len(labels)-1; i >= 0; i-- {
+			label := labels[i]
+			n = n.child(label)
+			if i == 0 {
+				if nt != nodeTypeParentOnly && n.nodeType == nodeTypeParentOnly {
+					n.nodeType = nt
+				}
+				n.icann = n.icann && icann
+				n.wildcard = n.wildcard || wildcard
+			}
+			labelsMap[label] = true
+		}
+	}
+	labelsList = make([]string, 0, len(labelsMap))
+	for label := range labelsMap {
+		labelsList = append(labelsList, label)
+	}
+	sort.Strings(labelsList)
+
+	if err := generate(printReal, &root, "table.go"); err != nil {
+		return err
+	}
+	if err := generate(printTest, &root, "table_test.go"); err != nil {
+		return err
+	}
+	return nil
+}
+
+func generate(p func(io.Writer, *node) error, root *node, filename string) error {
+	buf := new(bytes.Buffer)
+	if err := p(buf, root); err != nil {
+		return err
+	}
+	b, err := format.Source(buf.Bytes())
+	if err != nil {
+		return err
+	}
+	return ioutil.WriteFile(filename, b, 0644)
+}
+
+func gitCommit() (sha, date string, retErr error) {
+	res, err := http.Get(gitCommitURL)
+	if err != nil {
+		return "", "", err
+	}
+	if res.StatusCode != http.StatusOK {
+		return "", "", fmt.Errorf("bad GET status for %s: %d", gitCommitURL, res.Status)
+	}
+	defer res.Body.Close()
+	b, err := ioutil.ReadAll(res.Body)
+	if err != nil {
+		return "", "", err
+	}
+	if m := shaRE.FindSubmatch(b); m != nil {
+		sha = string(m[1])
+	}
+	if m := dateRE.FindSubmatch(b); m != nil {
+		date = string(m[1])
+	}
+	if sha == "" || date == "" {
+		retErr = fmt.Errorf("could not find commit SHA and date in %s", gitCommitURL)
+	}
+	return sha, date, retErr
+}
+
+func printTest(w io.Writer, n *node) error {
+	fmt.Fprintf(w, "// generated by go run gen.go; DO NOT EDIT\n\n")
+	fmt.Fprintf(w, "package publicsuffix\n\nvar rules = [...]string{\n")
+	for _, rule := range rules {
+		fmt.Fprintf(w, "%q,\n", rule)
+	}
+	fmt.Fprintf(w, "}\n\nvar nodeLabels = [...]string{\n")
+	if err := n.walk(w, printNodeLabel); err != nil {
+		return err
+	}
+	fmt.Fprintf(w, "}\n")
+	return nil
+}
+
+func printReal(w io.Writer, n *node) error {
+	const header = `// generated by go run gen.go; DO NOT EDIT
+
+package publicsuffix
+
+const version = %q
+
+const (
+	nodesBitsChildren   = %d
+	nodesBitsICANN      = %d
+	nodesBitsTextOffset = %d
+	nodesBitsTextLength = %d
+
+	childrenBitsWildcard = %d
+	childrenBitsNodeType = %d
+	childrenBitsHi       = %d
+	childrenBitsLo       = %d
+)
+
+const (
+	nodeTypeNormal     = %d
+	nodeTypeException  = %d
+	nodeTypeParentOnly = %d
+)
+
+// numTLD is the number of top level domains.
+const numTLD = %d
+
+`
+	fmt.Fprintf(w, header, *version,
+		nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength,
+		childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo,
+		nodeTypeNormal, nodeTypeException, nodeTypeParentOnly, len(n.children))
+
+	text := combineText(labelsList)
+	if text == "" {
+		return fmt.Errorf("internal error: makeText returned no text")
+	}
+	for _, label := range labelsList {
+		offset, length := strings.Index(text, label), len(label)
+		if offset < 0 {
+			return fmt.Errorf("internal error: could not find %q in text %q", label, text)
+		}
+		maxTextOffset, maxTextLength = max(maxTextOffset, offset), max(maxTextLength, length)
+		if offset >= 1<<nodesBitsTextOffset {
+			return fmt.Errorf("text offset %d is too large, or nodeBitsTextOffset is too small", offset)
+		}
+		if length >= 1<<nodesBitsTextLength {
+			return fmt.Errorf("text length %d is too large, or nodeBitsTextLength is too small", length)
+		}
+		labelEncoding[label] = uint32(offset)<<nodesBitsTextLength | uint32(length)
+	}
+	fmt.Fprintf(w, "// Text is the combined text of all labels.\nconst text = ")
+	for len(text) > 0 {
+		n, plus := len(text), ""
+		if n > 64 {
+			n, plus = 64, " +"
+		}
+		fmt.Fprintf(w, "%q%s\n", text[:n], plus)
+		text = text[n:]
+	}
+
+	if err := n.walk(w, assignIndexes); err != nil {
+		return err
+	}
+
+	fmt.Fprintf(w, `
+
+// nodes is the list of nodes. Each node is represented as a uint32, which
+// encodes the node's children, wildcard bit and node type (as an index into
+// the children array), ICANN bit and text.
+//
+// If the table was generated with the -comments flag, there is a //-comment
+// after each node's data. In it is the nodes-array indexes of the children,
+// formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The
+// nodeType is printed as + for normal, ! for exception, and o for parent-only
+// nodes that have children but don't match a domain label in their own right.
+// An I denotes an ICANN domain.
+//
+// The layout within the uint32, from MSB to LSB, is:
+//	[%2d bits] unused
+//	[%2d bits] children index
+//	[%2d bits] ICANN bit
+//	[%2d bits] text index
+//	[%2d bits] text length
+var nodes = [...]uint32{
+`,
+		32-nodesBitsChildren-nodesBitsICANN-nodesBitsTextOffset-nodesBitsTextLength,
+		nodesBitsChildren, nodesBitsICANN, nodesBitsTextOffset, nodesBitsTextLength)
+	if err := n.walk(w, printNode); err != nil {
+		return err
+	}
+	fmt.Fprintf(w, `}
+
+// children is the list of nodes' children, the parent's wildcard bit and the
+// parent's node type. If a node has no children then their children index
+// will be in the range [0, 6), depending on the wildcard bit and node type.
+//
+// The layout within the uint32, from MSB to LSB, is:
+//	[%2d bits] unused
+//	[%2d bits] wildcard bit
+//	[%2d bits] node type
+//	[%2d bits] high nodes index (exclusive) of children
+//	[%2d bits] low nodes index (inclusive) of children
+var children=[...]uint32{
+`,
+		32-childrenBitsWildcard-childrenBitsNodeType-childrenBitsHi-childrenBitsLo,
+		childrenBitsWildcard, childrenBitsNodeType, childrenBitsHi, childrenBitsLo)
+	for i, c := range childrenEncoding {
+		s := "---------------"
+		lo := c & (1<<childrenBitsLo - 1)
+		hi := (c >> childrenBitsLo) & (1<<childrenBitsHi - 1)
+		if lo != hi {
+			s = fmt.Sprintf("n0x%04x-n0x%04x", lo, hi)
+		}
+		nodeType := int(c>>(childrenBitsLo+childrenBitsHi)) & (1<<childrenBitsNodeType - 1)
+		wildcard := c>>(childrenBitsLo+childrenBitsHi+childrenBitsNodeType) != 0
+		if *comments {
+			fmt.Fprintf(w, "0x%08x, // c0x%04x (%s)%s %s\n",
+				c, i, s, wildcardStr(wildcard), nodeTypeStr(nodeType))
+		} else {
+			fmt.Fprintf(w, "0x%x,\n", c)
+		}
+	}
+	fmt.Fprintf(w, "}\n\n")
+	fmt.Fprintf(w, "// max children %d (capacity %d)\n", maxChildren, 1<<nodesBitsChildren-1)
+	fmt.Fprintf(w, "// max text offset %d (capacity %d)\n", maxTextOffset, 1<<nodesBitsTextOffset-1)
+	fmt.Fprintf(w, "// max text length %d (capacity %d)\n", maxTextLength, 1<<nodesBitsTextLength-1)
+	fmt.Fprintf(w, "// max hi %d (capacity %d)\n", maxHi, 1<<childrenBitsHi-1)
+	fmt.Fprintf(w, "// max lo %d (capacity %d)\n", maxLo, 1<<childrenBitsLo-1)
+	return nil
+}
+
+type node struct {
+	label    string
+	nodeType int
+	icann    bool
+	wildcard bool
+	// nodesIndex and childrenIndex are the index of this node in the nodes
+	// and the index of its children offset/length in the children arrays.
+	nodesIndex, childrenIndex int
+	// firstChild is the index of this node's first child, or zero if this
+	// node has no children.
+	firstChild int
+	// children are the node's children, in strictly increasing node label order.
+	children []*node
+}
+
+func (n *node) walk(w io.Writer, f func(w1 io.Writer, n1 *node) error) error {
+	if err := f(w, n); err != nil {
+		return err
+	}
+	for _, c := range n.children {
+		if err := c.walk(w, f); err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
+// child returns the child of n with the given label. The child is created if
+// it did not exist beforehand.
+func (n *node) child(label string) *node {
+	for _, c := range n.children {
+		if c.label == label {
+			return c
+		}
+	}
+	c := &node{
+		label:    label,
+		nodeType: nodeTypeParentOnly,
+		icann:    true,
+	}
+	n.children = append(n.children, c)
+	sort.Sort(byLabel(n.children))
+	return c
+}
+
+type byLabel []*node
+
+func (b byLabel) Len() int           { return len(b) }
+func (b byLabel) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+func (b byLabel) Less(i, j int) bool { return b[i].label < b[j].label }
+
+var nextNodesIndex int
+
+// childrenEncoding are the encoded entries in the generated children array.
+// All these pre-defined entries have no children.
+var childrenEncoding = []uint32{
+	0 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeNormal.
+	1 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeException.
+	2 << (childrenBitsLo + childrenBitsHi), // Without wildcard bit, nodeTypeParentOnly.
+	4 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeNormal.
+	5 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeException.
+	6 << (childrenBitsLo + childrenBitsHi), // With wildcard bit, nodeTypeParentOnly.
+}
+
+var firstCallToAssignIndexes = true
+
+func assignIndexes(w io.Writer, n *node) error {
+	if len(n.children) != 0 {
+		// Assign nodesIndex.
+		n.firstChild = nextNodesIndex
+		for _, c := range n.children {
+			c.nodesIndex = nextNodesIndex
+			nextNodesIndex++
+		}
+
+		// The root node's children is implicit.
+		if firstCallToAssignIndexes {
+			firstCallToAssignIndexes = false
+			return nil
+		}
+
+		// Assign childrenIndex.
+		maxChildren = max(maxChildren, len(childrenEncoding))
+		if len(childrenEncoding) >= 1<<nodesBitsChildren {
+			return fmt.Errorf("children table size %d is too large, or nodeBitsChildren is too small", len(childrenEncoding))
+		}
+		n.childrenIndex = len(childrenEncoding)
+		lo := uint32(n.firstChild)
+		hi := lo + uint32(len(n.children))
+		maxLo, maxHi = u32max(maxLo, lo), u32max(maxHi, hi)
+		if lo >= 1<<childrenBitsLo {
+			return fmt.Errorf("children lo %d is too large, or childrenBitsLo is too small", lo)
+		}
+		if hi >= 1<<childrenBitsHi {
+			return fmt.Errorf("children hi %d is too large, or childrenBitsHi is too small", hi)
+		}
+		enc := hi<<childrenBitsLo | lo
+		enc |= uint32(n.nodeType) << (childrenBitsLo + childrenBitsHi)
+		if n.wildcard {
+			enc |= 1 << (childrenBitsLo + childrenBitsHi + childrenBitsNodeType)
+		}
+		childrenEncoding = append(childrenEncoding, enc)
+	} else {
+		n.childrenIndex = n.nodeType
+		if n.wildcard {
+			n.childrenIndex += numNodeType
+		}
+	}
+	return nil
+}
+
+func printNode(w io.Writer, n *node) error {
+	for _, c := range n.children {
+		s := "---------------"
+		if len(c.children) != 0 {
+			s = fmt.Sprintf("n0x%04x-n0x%04x", c.firstChild, c.firstChild+len(c.children))
+		}
+		encoding := labelEncoding[c.label]
+		if c.icann {
+			encoding |= 1 << (nodesBitsTextLength + nodesBitsTextOffset)
+		}
+		encoding |= uint32(c.childrenIndex) << (nodesBitsTextLength + nodesBitsTextOffset + nodesBitsICANN)
+		if *comments {
+			fmt.Fprintf(w, "0x%08x, // n0x%04x c0x%04x (%s)%s %s %s %s\n",
+				encoding, c.nodesIndex, c.childrenIndex, s, wildcardStr(c.wildcard),
+				nodeTypeStr(c.nodeType), icannStr(c.icann), c.label,
+			)
+		} else {
+			fmt.Fprintf(w, "0x%x,\n", encoding)
+		}
+	}
+	return nil
+}
+
+func printNodeLabel(w io.Writer, n *node) error {
+	for _, c := range n.children {
+		fmt.Fprintf(w, "%q,\n", c.label)
+	}
+	return nil
+}
+
+func icannStr(icann bool) string {
+	if icann {
+		return "I"
+	}
+	return " "
+}
+
+func wildcardStr(wildcard bool) string {
+	if wildcard {
+		return "*"
+	}
+	return " "
+}
+
+// combineText combines all the strings in labelsList to form one giant string.
+// Overlapping strings will be merged: "arpa" and "parliament" could yield
+// "arparliament".
+func combineText(labelsList []string) string {
+	beforeLength := 0
+	for _, s := range labelsList {
+		beforeLength += len(s)
+	}
+
+	text := crush(removeSubstrings(labelsList))
+	if *v {
+		fmt.Fprintf(os.Stderr, "crushed %d bytes to become %d bytes\n", beforeLength, len(text))
+	}
+	return text
+}
+
+type byLength []string
+
+func (s byLength) Len() int           { return len(s) }
+func (s byLength) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
+func (s byLength) Less(i, j int) bool { return len(s[i]) < len(s[j]) }
+
+// removeSubstrings returns a copy of its input with any strings removed
+// that are substrings of other provided strings.
+func removeSubstrings(input []string) []string {
+	// Make a copy of input.
+	ss := append(make([]string, 0, len(input)), input...)
+	sort.Sort(byLength(ss))
+
+	for i, shortString := range ss {
+		// For each string, only consider strings higher than it in sort order, i.e.
+		// of equal length or greater.
+		for _, longString := range ss[i+1:] {
+			if strings.Contains(longString, shortString) {
+				ss[i] = ""
+				break
+			}
+		}
+	}
+
+	// Remove the empty strings.
+	sort.Strings(ss)
+	for len(ss) > 0 && ss[0] == "" {
+		ss = ss[1:]
+	}
+	return ss
+}
+
+// crush combines a list of strings, taking advantage of overlaps. It returns a
+// single string that contains each input string as a substring.
+func crush(ss []string) string {
+	maxLabelLen := 0
+	for _, s := range ss {
+		if maxLabelLen < len(s) {
+			maxLabelLen = len(s)
+		}
+	}
+
+	for prefixLen := maxLabelLen; prefixLen > 0; prefixLen-- {
+		prefixes := makePrefixMap(ss, prefixLen)
+		for i, s := range ss {
+			if len(s) <= prefixLen {
+				continue
+			}
+			mergeLabel(ss, i, prefixLen, prefixes)
+		}
+	}
+
+	return strings.Join(ss, "")
+}
+
+// mergeLabel merges the label at ss[i] with the first available matching label
+// in prefixMap, where the last "prefixLen" characters in ss[i] match the first
+// "prefixLen" characters in the matching label.
+// It will merge ss[i] repeatedly until no more matches are available.
+// All matching labels merged into ss[i] are replaced by "".
+func mergeLabel(ss []string, i, prefixLen int, prefixes prefixMap) {
+	s := ss[i]
+	suffix := s[len(s)-prefixLen:]
+	for _, j := range prefixes[suffix] {
+		// Empty strings mean "already used." Also avoid merging with self.
+		if ss[j] == "" || i == j {
+			continue
+		}
+		if *v {
+			fmt.Fprintf(os.Stderr, "%d-length overlap at (%4d,%4d): %q and %q share %q\n",
+				prefixLen, i, j, ss[i], ss[j], suffix)
+		}
+		ss[i] += ss[j][prefixLen:]
+		ss[j] = ""
+		// ss[i] has a new suffix, so merge again if possible.
+		// Note: we only have to merge again at the same prefix length. Shorter
+		// prefix lengths will be handled in the next iteration of crush's for loop.
+		// Can there be matches for longer prefix lengths, introduced by the merge?
+		// I believe that any such matches would by necessity have been eliminated
+		// during substring removal or merged at a higher prefix length. For
+		// instance, in crush("abc", "cde", "bcdef"), combining "abc" and "cde"
+		// would yield "abcde", which could be merged with "bcdef." However, in
+		// practice "cde" would already have been elimintated by removeSubstrings.
+		mergeLabel(ss, i, prefixLen, prefixes)
+		return
+	}
+}
+
+// prefixMap maps from a prefix to a list of strings containing that prefix. The
+// list of strings is represented as indexes into a slice of strings stored
+// elsewhere.
+type prefixMap map[string][]int
+
+// makePrefixMap constructs a prefixMap from a slice of strings.
+func makePrefixMap(ss []string, prefixLen int) prefixMap {
+	prefixes := make(prefixMap)
+	for i, s := range ss {
+		// We use < rather than <= because if a label matches on a prefix equal to
+		// its full length, that's actually a substring match handled by
+		// removeSubstrings.
+		if prefixLen < len(s) {
+			prefix := s[:prefixLen]
+			prefixes[prefix] = append(prefixes[prefix], i)
+		}
+	}
+
+	return prefixes
+}
diff --git a/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/list.go b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/list.go
new file mode 100644
index 0000000000..8bbf3bcd7e
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/list.go
@@ -0,0 +1,135 @@
+// 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.
+
+//go:generate go run gen.go
+
+// Package publicsuffix provides a public suffix list based on data from
+// http://publicsuffix.org/. A public suffix is one under which Internet users
+// can directly register names.
+package publicsuffix // import "golang.org/x/net/publicsuffix"
+
+// TODO: specify case sensitivity and leading/trailing dot behavior for
+// func PublicSuffix and func EffectiveTLDPlusOne.
+
+import (
+	"fmt"
+	"net/http/cookiejar"
+	"strings"
+)
+
+// List implements the cookiejar.PublicSuffixList interface by calling the
+// PublicSuffix function.
+var List cookiejar.PublicSuffixList = list{}
+
+type list struct{}
+
+func (list) PublicSuffix(domain string) string {
+	ps, _ := PublicSuffix(domain)
+	return ps
+}
+
+func (list) String() string {
+	return version
+}
+
+// PublicSuffix returns the public suffix of the domain using a copy of the
+// publicsuffix.org database compiled into the library.
+//
+// icann is whether the public suffix is managed by the Internet Corporation
+// for Assigned Names and Numbers. If not, the public suffix is privately
+// managed. For example, foo.org and foo.co.uk are ICANN domains,
+// foo.dyndns.org and foo.blogspot.co.uk are private domains.
+//
+// Use cases for distinguishing ICANN domains like foo.com from private
+// domains like foo.appspot.com can be found at
+// https://wiki.mozilla.org/Public_Suffix_List/Use_Cases
+func PublicSuffix(domain string) (publicSuffix string, icann bool) {
+	lo, hi := uint32(0), uint32(numTLD)
+	s, suffix, wildcard := domain, len(domain), false
+loop:
+	for {
+		dot := strings.LastIndex(s, ".")
+		if wildcard {
+			suffix = 1 + dot
+		}
+		if lo == hi {
+			break
+		}
+		f := find(s[1+dot:], lo, hi)
+		if f == notFound {
+			break
+		}
+
+		u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength)
+		icann = u&(1<<nodesBitsICANN-1) != 0
+		u >>= nodesBitsICANN
+		u = children[u&(1<<nodesBitsChildren-1)]
+		lo = u & (1<<childrenBitsLo - 1)
+		u >>= childrenBitsLo
+		hi = u & (1<<childrenBitsHi - 1)
+		u >>= childrenBitsHi
+		switch u & (1<<childrenBitsNodeType - 1) {
+		case nodeTypeNormal:
+			suffix = 1 + dot
+		case nodeTypeException:
+			suffix = 1 + len(s)
+			break loop
+		}
+		u >>= childrenBitsNodeType
+		wildcard = u&(1<<childrenBitsWildcard-1) != 0
+
+		if dot == -1 {
+			break
+		}
+		s = s[:dot]
+	}
+	if suffix == len(domain) {
+		// If no rules match, the prevailing rule is "*".
+		return domain[1+strings.LastIndex(domain, "."):], icann
+	}
+	return domain[suffix:], icann
+}
+
+const notFound uint32 = 1<<32 - 1
+
+// find returns the index of the node in the range [lo, hi) whose label equals
+// label, or notFound if there is no such node. The range is assumed to be in
+// strictly increasing node label order.
+func find(label string, lo, hi uint32) uint32 {
+	for lo < hi {
+		mid := lo + (hi-lo)/2
+		s := nodeLabel(mid)
+		if s < label {
+			lo = mid + 1
+		} else if s == label {
+			return mid
+		} else {
+			hi = mid
+		}
+	}
+	return notFound
+}
+
+// nodeLabel returns the label for the i'th node.
+func nodeLabel(i uint32) string {
+	x := nodes[i]
+	length := x & (1<<nodesBitsTextLength - 1)
+	x >>= nodesBitsTextLength
+	offset := x & (1<<nodesBitsTextOffset - 1)
+	return text[offset : offset+length]
+}
+
+// EffectiveTLDPlusOne returns the effective top level domain plus one more
+// label. For example, the eTLD+1 for "foo.bar.golang.org" is "golang.org".
+func EffectiveTLDPlusOne(domain string) (string, error) {
+	suffix, _ := PublicSuffix(domain)
+	if len(domain) <= len(suffix) {
+		return "", fmt.Errorf("publicsuffix: cannot derive eTLD+1 for domain %q", domain)
+	}
+	i := len(domain) - len(suffix) - 1
+	if domain[i] != '.' {
+		return "", fmt.Errorf("publicsuffix: invalid public suffix %q for domain %q", suffix, domain)
+	}
+	return domain[1+strings.LastIndex(domain[:i], "."):], nil
+}
diff --git a/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/table.go b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/table.go
new file mode 100644
index 0000000000..549511c884
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/golang.org/x/net/publicsuffix/table.go
@@ -0,0 +1,9419 @@
+// generated by go run gen.go; DO NOT EDIT
+
+package publicsuffix
+
+const version = "publicsuffix.org's public_suffix_list.dat, git revision 38b238d6324042f2c2e6270459d1f4ccfe789fba (2017-08-28T20:09:01Z)"
+
+const (
+	nodesBitsChildren   = 10
+	nodesBitsICANN      = 1
+	nodesBitsTextOffset = 15
+	nodesBitsTextLength = 6
+
+	childrenBitsWildcard = 1
+	childrenBitsNodeType = 2
+	childrenBitsHi       = 14
+	childrenBitsLo       = 14
+)
+
+const (
+	nodeTypeNormal     = 0
+	nodeTypeException  = 1
+	nodeTypeParentOnly = 2
+)
+
+// numTLD is the number of top level domains.
+const numTLD = 1557
+
+// Text is the combined text of all labels.
+const text = "bifukagawalterbihorologyukuhashimoichinosekigaharaxastronomy-gat" +
+	"ewaybomloans3-ca-central-1bikedagestangeorgeorgiabilbaogakihokum" +
+	"akogengerdalces3-website-us-west-1billustrationikinuyamashinashi" +
+	"kitchenikkoebenhavnikolaevents3-website-us-west-2bioddabirdartce" +
+	"nterprisesakikugawarszawashingtondclkariyameldalindesnesakurainv" +
+	"estmentsakyotanabellunord-odalivornomutashinainzais-a-candidateb" +
+	"irkenesoddtangenovaraumalopolskanlandrayddnsfreebox-oslocus-3bir" +
+	"thplacebitballooningladefinimakanegasakindlegokasells-for-lessal" +
+	"angenikonantankarlsoyurihonjoyentattoolsztynsettlersalondonetska" +
+	"rmoyusuharabjarkoyusuisserveexchangebjerkreimbalsfjordgcahcesuol" +
+	"ocalhostrodawaraugustowadaegubalsanagochihayaakasakawaharanzanne" +
+	"frankfurtarumizusawabkhaziamallamagazineat-url-o-g-i-naturalhist" +
+	"orymuseumcentereviewskrakowebredirectmeteorappaleobihirosakikami" +
+	"jimabogadocscbgdyniabruzzoologicalvinklein-addrammenuernberggfar" +
+	"merseinebinagisochildrensgardenaturalsciencesnaturelles3-ap-nort" +
+	"heast-2ixboxenapponazure-mobileastcoastaldefenceatonsberg12000em" +
+	"mafanconagawakayamadridvagsoyericssonyoursidealerimo-i-ranaamesj" +
+	"evuemielno-ip6bjugninohekinannestadraydnsaltdalombardiamondsalva" +
+	"dordalibabalatinord-frontierblockbustermezjavald-aostaplesalzbur" +
+	"glassassinationalheritagematsubarakawagoebloombergbauerninomiyak" +
+	"onojosoyrorosamegawabloxcmsamnangerbluedancebmoattachmentsamsclu" +
+	"bindalombardynamisches-dnsamsungleezebmsandvikcoromantovalle-d-a" +
+	"ostathellebmwedeployuufcfanirasakis-a-catererbnpparibaselburgliw" +
+	"icebnrwegroweibolzanorddalomzaporizhzheguris-a-celticsfanishiaza" +
+	"is-a-chefarmsteadrivelandrobaknoluoktachikawalbrzycharternidrudu" +
+	"nsanfranciscofreakunedre-eikerbonnishigoppdalorenskoglobalashovh" +
+	"achinohedmarkarpaczeladzlglobodoes-itvedestrandupontariobookingl" +
+	"ogoweirboomladbrokesangobootsanjournalismailillesandefjordurbana" +
+	"mexnetlifyis-a-conservativefsnillfjordurhamburgloppenzaogashimad" +
+	"achicagoboatsannanishiharaboschaefflerdalotenkawabostikaruizawab" +
+	"ostonakijinsekikogentingmbhartiffanyuzawabotanicalgardenishiizun" +
+	"azukis-a-cpadualstackspace-to-rentalstomakomaibarabotanicgardeni" +
+	"shikatakayamatta-varjjataxihuanishikatsuragit-repostfoldnavybota" +
+	"nybouncemerckmsdnipropetrovskjervoyagebounty-fullensakerryproper" +
+	"tiesannohelplfinancialotteboutiquebecngminakamichiharabozentsuji" +
+	"iebplacedekagaminordkappgafanpachigasakievennodesashibetsukumiya" +
+	"mazonawsaarlandyndns-at-workinggroupalmspringsakerbrandywinevall" +
+	"eybrasiliabresciabrindisibenikebristoloseyouripirangapartmentsan" +
+	"okarumaifarsundyndns-blogdnsantabarbarabritishcolumbialowiezachp" +
+	"omorskienishikawazukamitsuebroadcastlefrakkestadyndns-freeboxost" +
+	"rowwlkpmgmodenakatombetsumitakagiizebroadwaybroke-itgorybrokerbr" +
+	"onnoysundyndns-homednsantacruzsantafedjeffersonishimerabrotherme" +
+	"saverdeatnurembergmxfinitybrowsersafetymarketsanukis-a-cubicle-s" +
+	"lavellinotteroybrumunddalottokonamegatakasugais-a-democratjeldsu" +
+	"ndyndns-ipamperedchefashionishinomiyashironobrunelasticbeanstalk" +
+	"asaokaminoyamaxunusualpersonishinoomotegobrusselsaotomeloyalistj" +
+	"ordalshalsenishinoshimattelefonicarbonia-iglesias-carboniaiglesi" +
+	"ascarboniabruxellesapodlasiellaktyubinskiptveterinairealtorlandy" +
+	"ndns-mailouvrehabmerbryanskleppanamabrynewjerseybuskerudinewport" +
+	"lligatjmaxxxjaworznowtv-infoodnetworkshoppingrimstadyndns-office" +
+	"-on-the-webcambulancebuzenishiokoppegardyndns-picsapporobuzzpana" +
+	"sonicateringebugattipschlesischesardegnamsskoganeis-a-designerim" +
+	"arumorimachidabwfastlylbaltimore-og-romsdalillyokozehimejibigawa" +
+	"ukraanghkeymachinewhampshirebungoonord-aurdalpha-myqnapcloudacce" +
+	"sscambridgestonemurorangeiseiyoichippubetsubetsugaruhrhcloudns3-" +
+	"eu-central-1bzhitomirumalselvendrellowiczest-le-patronishitosash" +
+	"imizunaminamiashigaracompute-1computerhistoryofscience-fictionco" +
+	"msecuritytacticsaseboknowsitallvivano-frankivskasuyanagawacondos" +
+	"hichinohealth-carereformitakeharaconferenceconstructionconsulado" +
+	"esntexistanbullensvanguardyndns-workisboringrueconsultanthropolo" +
+	"gyconsultingvollcontactoyonocontemporaryarteducationalchikugodoh" +
+	"aruovatoyookannamifunecontractorskenconventureshinodearthdfcbank" +
+	"aszubycookingchannelsdvrdnsdojoetsuwanouchikujogaszczytnordreisa" +
+	"-geekatowicecoolkuszkolahppiacenzaganquannakadomarineustarhubsas" +
+	"katchewancooperaunitemp-dnsassaris-a-gurulsandoycopenhagencyclop" +
+	"edichernihivanovodkagoshimalvikashibatakashimaseratis-a-financia" +
+	"ladvisor-aurdalucaniacorsicagliaridagawashtenawdev-myqnapcloudap" +
+	"plebtimnetzwhoswhokksundyndns1corvettenrightathomeftparliamentoy" +
+	"osatoyakokonoecosenzakopanerairguardiann-arboretumbriacosidnsfor" +
+	"-better-thanawatchesatxn--12c1fe0bradescorporationcostumedio-cam" +
+	"pidano-mediocampidanomediocouchpotatofriesaudacouncilcouponsauhe" +
+	"radynnsavannahgacoursesaves-the-whalessandria-trani-barletta-and" +
+	"riatranibarlettaandriacqhachiojiyahoooshikamaishimodatecranbrook" +
+	"uwanalyticsavonaplesaxocreditcardynulvikatsushikabeeldengeluidyn" +
+	"v6creditunioncremonashgabadaddjambylcrewiiheyakagecricketrzyncri" +
+	"meast-kazakhstanangercrotonexus-2crownprovidercrsvparmacruisesbs" +
+	"chokoladencryptonomichigangwoncuisinellair-traffic-controlleycul" +
+	"turalcentertainmentoyotaris-a-hard-workercuneocupcakecxn--12cfi8" +
+	"ixb8lcyberlevagangaviikanonjis-a-huntercymrussiacyonabarunzencyo" +
+	"utheworkpccwildlifedorainfracloudcontrolledogawarabikomaezakirun" +
+	"orfolkebibleikangerfidonnakaniikawatanagurafieldfiguerestauranto" +
+	"yotsukaidownloadfilateliafilegearfilminamiechizenfinalfinancefin" +
+	"eartscientistockholmestrandfinlandfinnoyfirebaseapparscjohnsonfi" +
+	"renzefirestonefirmdaleirvikatsuyamasfjordenfishingolffanscotland" +
+	"fitjarfitnessettlementoyourafjalerflesbergulenflickragerotikakeg" +
+	"awaflightscrapper-siteflirflogintogurafloraflorencefloridavvesii" +
+	"dazaifudaigojomedizinhistorischescrappingunmarburguovdageaidnusl" +
+	"ivinghistoryfloripaderbornfloristanohatakahamangyshlakasamatsudo" +
+	"ntexisteingeekaufenflorogerserveftpartis-a-landscaperflowerserve" +
+	"game-serversicherungushikamifuranortonflynnhostingxn--1ck2e1bamb" +
+	"leclercasadelamonedatingjerstadotsuruokakudamatsuemrflynnhubanan" +
+	"arepublicaseihichisobetsuitainairforcechirealmetlifeinsuranceu-1" +
+	"fndfor-ourfor-someethnologyfor-theaterforexrothachirogatakahatak" +
+	"aishimogosenforgotdnservehalflifestyleforli-cesena-forlicesenafo" +
+	"rlikescandynamic-dnservehttpartnerservehumourforsaleitungsenfors" +
+	"andasuolodingenfortmissoulancashireggio-calabriafortworthadanose" +
+	"gawaforuminamifuranofosneserveirchernovtsykkylvenetogakushimotog" +
+	"anewyorkshirecipesaro-urbino-pesarourbinopesaromasvuotnaharimamu" +
+	"rogawassamukawataricohdatsunanjoburgriwataraidyndns-remotewdyndn" +
+	"s-serverdaluccapitalonewspaperfotaruis-a-lawyerfoxfordebianfredr" +
+	"ikstadtvserveminecraftoystre-slidrettozawafreeddnsgeekgalaxyfree" +
+	"masonryfreesitexascolipicenogiftservemp3freetlservep2partservepi" +
+	"cservequakefreiburgfreightcminamiiselectozsdeloittevadsoccertifi" +
+	"cationfresenius-4fribourgfriuli-v-giuliafriuli-ve-giuliafriuli-v" +
+	"egiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-vgiuliafr" +
+	"iuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-giuliafri" +
+	"uliveneziagiuliafriulivgiuliafrlfroganservesarcasmatartanddesign" +
+	"frognfrolandfrom-akrehamnfrom-alfrom-arfrom-azfrom-capebretonami" +
+	"astalowa-wolayangroupartyfrom-coguchikuzenfrom-ctrani-andria-bar" +
+	"letta-trani-andriafrom-dchirurgiens-dentistes-en-francefrom-dedy" +
+	"n-ip24from-flanderservicesettsurgeonshalloffamemergencyachtsevas" +
+	"topolefrom-gausdalfrom-higashiagatsumagoizumizakirkenesevenassis" +
+	"icilyfrom-iafrom-idfrom-ilfrom-incheonfrom-ksewilliamhillfrom-ky" +
+	"owariasahikawafrom-lancasterfrom-maniwakuratextileksvikautokeino" +
+	"from-mdfrom-megurokunohealthcareersharis-a-liberalfrom-microsoft" +
+	"bankazofrom-mnfrom-modellingfrom-msharpasadenamsosnowiechiryukyu" +
+	"ragifuchungbukharafrom-mtnfrom-nchitachinakagawatchandclockashih" +
+	"arafrom-ndfrom-nefrom-nhktraniandriabarlettatraniandriafrom-njcb" +
+	"nlfrom-nminamiizukamishihoronobeauxartsandcraftshawaiijimarugame" +
+	"-hostrolekamikitayamatsuris-a-libertarianfrom-nvalled-aostatoilf" +
+	"rom-nyfrom-ohkurafrom-oketohmannorth-kazakhstanfrom-orfrom-padov" +
+	"aksdalfrom-pratohnoshooguyfrom-rivnefrom-schoenbrunnfrom-sdfrom-" +
+	"tnfrom-txn--1ctwolominamatakkokamiokamiminershellaspeziafrom-uta" +
+	"zuerichardlillehammerfeste-ipassagenshimojis-a-linux-useranishia" +
+	"ritabashijonawatefrom-val-daostavalleyfrom-vtranoyfrom-wafrom-wi" +
+	"elunnerfrom-wvalledaostavangerfrom-wyfrosinonefrostalbanshimokaw" +
+	"afroyahikobeardubaiduckdnshimokitayamafstavernfujiiderafujikawag" +
+	"uchikonefujiminohtawaramotoineppubolognakanotoddenfujinomiyadafu" +
+	"jiokayamansionshimonitayanagithubusercontentransportransurlfujis" +
+	"atoshonairtelecitychyattorneyagawakuyabukidsmynasushiobaragusart" +
+	"shimonosekikawafujisawafujishiroishidakabiratoridefenseljordfuji" +
+	"tsurugashimaritimekeepingfujixeroxn--1lqs03nfujiyoshidafukayabea" +
+	"tshimosuwalkis-a-llamarylandfukuchiyamadafukudominichitosetogits" +
+	"uldalucernefukuis-a-musicianfukumitsubishigakirovogradoyfukuokaz" +
+	"akiryuohadselfipassenger-associationfukuroishikarikaturindalfuku" +
+	"sakisarazurewebsiteshikagamiishibukawafukuyamagatakaharufunabash" +
+	"iriuchinadafunagatakahashimamakishiwadafunahashikamiamakusatsuma" +
+	"sendaisennangonohejis-a-nascarfanfundaciofuoiskujukuriyamanxn--1" +
+	"lqs71dfuosskoczowinbarcelonagasakikonaikawachinaganoharamcoacham" +
+	"pionshiphoptobishimaizurugbydgoszczecinemakeupowiathletajimabari" +
+	"akembuchikumagayagawakkanaibetsubamericanfamilydscloudcontrolapp" +
+	"spotagerfurnitureggio-emilia-romagnakasatsunairtrafficplexus-1fu" +
+	"rubiraquarellebesbyenglandfurudonostiaarpaviancarrierfurukawais-" +
+	"a-nurservebbshimotsukefusodegaurafussagamiharafutabayamaguchinom" +
+	"igawafutboldlygoingnowhere-for-moregontrailroadfuttsurugimperiaf" +
+	"uturecmshimotsumafuturehostingfuturemailingfvgfylkesbiblackfrida" +
+	"yfyresdalhangglidinghangoutsystemscloudfunctionshinichinanhannan" +
+	"mokuizumodernhannotaireshinjournalisteinkjerusalembroideryhanyuz" +
+	"enhapmirhareidsbergenharstadharvestcelebrationhasamarcheapgfoggi" +
+	"ahasaminami-alpssells-itrapaniimimatakatoris-a-playerhashbanghas" +
+	"udahasura-appharmacienshinjukumanohasvikazunohatogayaitakamoriok" +
+	"aluganskolevangerhatoyamazakitahiroshimarnardalhatsukaichikaisei" +
+	"s-a-republicancerresearchaeologicaliforniahattfjelldalhayashimam" +
+	"otobungotakadapliernewmexicodyn-vpnplusterhazuminobusellsyourhom" +
+	"egoodshinkamigotoyohashimotoshimahboehringerikehelsinkitakamiizu" +
+	"misanofidelityhembygdsforbundhemneshinshinotsurgeryhemsedalhepfo" +
+	"rgeherokussldheroyhgtvallee-aosteroyhigashichichibunkyonanaoshim" +
+	"ageandsoundandvisionhigashihiroshimanehigashiizumozakitakatakana" +
+	"beautysfjordhigashikagawahigashikagurasoedahigashikawakitaaikita" +
+	"kyushuaiahigashikurumeiwamarriottravelchannelhigashimatsushimars" +
+	"hallstatebankddielddanuorrikuzentakataiwanairlinebraskaunjargals" +
+	"aceohigashimatsuyamakitaakitadaitoigawahigashimurayamamotorcycle" +
+	"shinshirohigashinarusembokukitamidoris-a-rockstarachowicehigashi" +
+	"nehigashiomihachimanchesterhigashiosakasayamanakakogawahigashish" +
+	"irakawamatakanezawahigashisumiyoshikawaminamiaikitamotosumy-rout" +
+	"erhigashitsunotogawahigashiurausukitanakagusukumoduminamiminowah" +
+	"igashiyamatokoriyamanashifteditchyouripharmacyshintokushimahigas" +
+	"hiyodogawahigashiyoshinogaris-a-socialistmein-vigorgehiraizumisa" +
+	"tohobby-sitehirakatashinagawahiranais-a-soxfanhirarahiratsukagaw" +
+	"ahirayaizuwakamatsubushikusakadogawahistorichouseshintomikasahar" +
+	"ahitachiomiyagildeskaliszhitachiotagooglecodespotravelersinsuran" +
+	"cehitraeumtgeradellogliastradinghjartdalhjelmelandholeckobierzyc" +
+	"eholidayhomeiphdhomelinkfhappouhomelinuxn--1qqw23ahomeofficehome" +
+	"securitymaceratakaokamakurazakitashiobarahomesecuritypchloehomes" +
+	"enseminehomeunixn--2m4a15ehondahoneywellbeingzonehongopocznorthw" +
+	"esternmutualhonjyoitakarazukameokameyamatotakadahornindalhorseou" +
+	"lminamiogunicomcastresistancehortendofinternet-dnshinyoshitomiok" +
+	"amogawahospitalhoteleshiojirishirifujiedahotmailhoyangerhoylande" +
+	"troitskydivinghumanitieshioyanaizuhurdalhurumajis-a-studentalhyl" +
+	"lestadhyogoris-a-teacherkassymantechnologyhyugawarahyundaiwafune" +
+	"hzchocolatemasekashiwarajewishartgalleryjfkharkovalleeaosteigenj" +
+	"gorajlcube-serverrankoshigayakumoldelmenhorstagejlljmphilipsynol" +
+	"ogy-diskstationjnjcphilatelyjoyokaichibahccavuotnagareyamalborkd" +
+	"alwaysdatabaseballangenoamishirasatochigiessensiositelemarkherso" +
+	"njpmorganjpnjprshiraokananporovigotpantheonsitejuniperjurkoshuna" +
+	"ntokigawakosugekotohiradomainshiratakahagitlaborkotourakouhokuta" +
+	"makis-an-artistcgrouphiladelphiaareadmyblogsitekounosupplieshish" +
+	"ikuis-an-engineeringkouyamashikokuchuokouzushimasoykozagawakozak" +
+	"is-an-entertainerkozowindmillkpnkppspdnshisognekrasnodarkredston" +
+	"ekristiansandcatshisuifuelblagdenesnaaseralingenkainanaejrietisa" +
+	"latinabenonichoshibuyachiyodavvenjargaulardalutskasukabedzin-the" +
+	"-bandaioiraseeklogest-mon-blogueurovisionisshingugekristiansundk" +
+	"rodsheradkrokstadelvaldaostarnbergkryminamisanrikubetsupportrent" +
+	"ino-alto-adigekumatorinokumejimasudakumenanyokkaichiropractichoy" +
+	"odobashichikashukujitawarakunisakis-bykunitachiarailwaykunitomig" +
+	"usukumamotoyamassa-carrara-massacarraramassabusinessebyklegalloc" +
+	"alhistoryggeelvinckhmelnytskyivanylvenicekunneppulawykunstsammlu" +
+	"ngkunstunddesignkuokgrouphoenixn--30rr7ykureggioemiliaromagnakay" +
+	"amatsumaebashikshacknetrentino-altoadigekurgankurobelaudiblebork" +
+	"angerkurogimilanokuroisoftwarendalenugkuromatsunais-certifieduca" +
+	"torahimeshimamateramochizukirakurotakikawasakis-foundationkushir" +
+	"ogawakustanais-gonekusupplykutchanelkutnokuzumakis-into-animelbo" +
+	"urnekvafjordkvalsundkvamlidlugolekafjordkvanangenkvinesdalkvinnh" +
+	"eradkviteseidskogkvitsoykwpspiegelkzmisugitokorozawamitourismola" +
+	"ngevagrarchaeologyeongbuknx-serveronakatsugawamitoyoakemiuramiya" +
+	"zumiyotamanomjondalenmlbfanmonstermonticellolmontrealestatefarme" +
+	"quipmentrentino-s-tirollagrigentomologyeonggiehtavuoatnagaivuotn" +
+	"agaokakyotambabia-goracleaningatlantabusebastopologyeongnamegawa" +
+	"keisenbahnmonza-brianzaporizhzhiamonza-e-della-brianzapposhitara" +
+	"mamonzabrianzaptokuyamatsusakahoginankokubunjis-leetnedalmonzaeb" +
+	"rianzaramonzaedellabrianzamoonscalezajskolobrzegersundmoparachut" +
+	"ingmordoviajessheiminamitanemoriyamatsushigemoriyoshimilitarymor" +
+	"monmouthagakhanamigawamoroyamatsuuramortgagemoscowindowshizukuis" +
+	"himofusaintlouis-a-bruinsfanmoseushistorymosjoenmoskeneshizuokan" +
+	"azawamosshoujis-lostre-toteneis-an-accountantshirahamatonbetsurn" +
+	"adalmosvikomaganemoteginowaniihamatamakawajimaoris-not-certified" +
+	"unetbankhakassiamoviemovistargardmtpchristiansburgrondarmtranbym" +
+	"uenstermuginozawaonsenmuikamisunagawamukochikushinonsenergymulho" +
+	"uservebeermunakatanemuncieszynmuosattemuphonefosshowamurmanskoma" +
+	"kiyosunndalmurotorcraftrentino-stirolmusashimurayamatsuzakis-sav" +
+	"edmusashinoharamuseetrentino-sud-tirolmuseumverenigingmusicargod" +
+	"addynaliascoli-picenogataijis-slickharkivgucciprianiigataishinom" +
+	"akinderoymutsuzawamy-vigorlicemy-wanggouvicenzamyactivedirectory" +
+	"myasustor-elvdalmycdn77-securecifedexhibitionmyddnskingmydissent" +
+	"rentino-sudtirolmydrobofagemydshowtimemorialmyeffectrentino-sued" +
+	"-tirolmyfirewallonieruchomoscienceandindustrynmyfritzmyftpaccess" +
+	"hriramsterdamnserverbaniamyfusionmyhome-serversaillesienarashino" +
+	"mykolaivaolbia-tempio-olbiatempioolbialystokkepnoduminamiuonumat" +
+	"sumotofukemymailermymediapchristmasakimobetsuliguriamyokohamamat" +
+	"sudamypephotographysiomypetsigdalmyphotoshibajddarchitecturealty" +
+	"dalipaymypsxn--32vp30hagebostadmysecuritycamerakermyshopblocksil" +
+	"komatsushimashikizunokunimihoboleslawiechonanbuilderschmidtre-ga" +
+	"uldalukowhalingroks-thisayamanobeokalmykiamytis-a-bloggermytulea" +
+	"piagetmyipictetrentino-suedtirolmyvnchromedicaltanissettairamywi" +
+	"reitrentinoa-adigepinkomforbarclays3-us-east-2pioneerpippupictur" +
+	"esimple-urlpiszpittsburghofauskedsmokorsetagayasells-for-usgarde" +
+	"npiwatepixolinopizzapkommunalforbundplanetariuminamiyamashirokaw" +
+	"anabelembetsukubanklabudhabikinokawabarthaebaruminamimakis-a-pai" +
+	"nteractivegarsheis-a-patsfanplantationplantslingplatformshangril" +
+	"anslupskommuneplaystationplazaplchryslerplumbingopmnpodzonepohlp" +
+	"oivronpokerpokrovskomonopolitiendapolkowicepoltavalle-aostarostw" +
+	"odzislawinnersnoasaitamatsukuris-uberleetrdpomorzeszowiosokaneya" +
+	"mazoepordenonepornporsangerporsanguidell-ogliastraderporsgrunnan" +
+	"poznanpraxis-a-bookkeeperugiaprdpreservationpresidioprgmrprimelh" +
+	"uscultureisenprincipeprivatizehealthinsuranceprochowiceproductio" +
+	"nsokndalprofbsbxn--12co0c3b4evalleaostaticschuleprogressivegasia" +
+	"promombetsurfbx-oschwarzgwangjuifminamidaitomangotsukisofukushim" +
+	"aparocherkasyno-dschweizpropertyprotectionprotonetrentinoaadigep" +
+	"rudentialpruszkowitdkomorotsukamisatokamachintaifun-dnsaliasdabu" +
+	"rprzeworskogptplusdecorativeartsolarssonpvtrentinoalto-adigepwch" +
+	"ungnamdalseidfjordyndns-weberlincolniyodogawapzqldqponqslgbtrent" +
+	"inoaltoadigequicksytesolognequipelementsolundbeckomvuxn--2scrj9c" +
+	"hoseiroumuenchenissandnessjoenissayokoshibahikariwanumatakazakis" +
+	"-a-greenissedaluroyqvchurchaseljeepsongdalenviknagatorodoystufft" +
+	"oread-booksnesomnaritakurashikis-very-badajozorastuttgartrentino" +
+	"sudtirolsusakis-very-evillagesusonosuzakaniepcesuzukanmakiwakuni" +
+	"gamidsundsuzukis-very-goodhandsonsvalbardunloppacificirclegnicaf" +
+	"ederationsveiosvelvikongsvingersvizzerasvn-reposooswedenswidnica" +
+	"rtierswiebodzindianapolis-a-anarchistoireggiocalabriaswiftcovers" +
+	"winoujscienceandhistoryswisshikis-very-nicesynology-dsopotrentin" +
+	"os-tirolturystykanoyaltakasakiwientuscanytushuissier-justicetuva" +
+	"lle-daostatic-accessorreisahayakawakamiichikawamisatotaltuxfamil" +
+	"ytwmailvbargainstitutelevisionaustdalimanowarudaustevollavangena" +
+	"turbruksgymnaturhistorisches3-eu-west-1venneslaskerrylogisticsor" +
+	"tlandvestfoldvestnesoruminanovestre-slidreamhostersouthcarolinaz" +
+	"awavestre-totennishiawakuravestvagoyvevelstadvibo-valentiavibova" +
+	"lentiavideovillaskimitsubatamicable-modemoneyvinnicartoonartdeco" +
+	"ffeedbackplaneapplinzis-very-sweetpeppervinnytsiavipsinaappilots" +
+	"irdalvirginiavirtualvirtueeldomeindianmarketingvirtuelvisakataki" +
+	"nouevistaprinternationalfirearmsouthwestfalenviterboltrevisohugh" +
+	"esor-odalvivoldavixn--3bst00mincommbankmpspbarclaycards3-sa-east" +
+	"-1vlaanderenvladikavkazimierz-dolnyvladimirvlogoipimientaketomis" +
+	"atolgavolkswagentsowavologdanskonskowolawavolvolkenkundenvolyngd" +
+	"alvossevangenvotevotingvotoyonakagyokutourspjelkavikongsbergwloc" +
+	"lawekonsulatrobeepilepsydneywmflabspreadbettingworldworse-thanda" +
+	"wowithgoogleapisa-hockeynutsiracusakakinokiawpdevcloudwritesthis" +
+	"blogsytewroclawithyoutubeneventoeidsvollwtcircustomerwtfbxoscien" +
+	"cecentersciencehistorywuozuwwwiwatsukiyonowruzhgorodeowzmiuwajim" +
+	"axn--42c2d9axn--45br5cylxn--45brj9citadeliveryxn--45q11citicatho" +
+	"licheltenham-radio-opencraftrainingripescaravantaaxn--4gbriminin" +
+	"gxn--4it168dxn--4it797kooris-an-actorxn--4pvxs4allxn--54b7fta0cc" +
+	"ivilaviationxn--55qw42gxn--55qx5dxn--5js045dxn--5rtp49civilisati" +
+	"onxn--5rtq34kopervikhmelnitskiyamashikexn--5su34j936bgsgxn--5tzm" +
+	"5gxn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn--7t0a264civili" +
+	"zationxn--80adxhkspydebergxn--80ao21axn--80aqecdr1axn--80asehdba" +
+	"rreauctionaval-d-aosta-valleyolasiteu-2xn--80aswgxn--80audnedaln" +
+	"xn--8ltr62koryokamikawanehonbetsurutaharaxn--8pvr4uxn--8y0a063ax" +
+	"n--90a3academy-firewall-gatewayxn--90aeroportalaheadjudaicaaarbo" +
+	"rteaches-yogasawaracingroks-theatreexn--90aishobaraomoriguchihar" +
+	"ahkkeravjuedischesapeakebayernrtritonxn--90azhytomyrxn--9dbhblg6" +
+	"dietcimdbarrel-of-knowledgemologicallimitediscountysvardolls3-us" +
+	"-gov-west-1xn--9dbq2axn--9et52uxn--9krt00axn--andy-iraxn--aropor" +
+	"t-byandexn--3ds443gxn--asky-iraxn--aurskog-hland-jnbarrell-of-kn" +
+	"owledgeologyombondiscoveryomitanobninskarasjohkaminokawanishiaiz" +
+	"ubangeu-3utilitiesquare7xn--avery-yuasakegawaxn--b-5gaxn--b4w605" +
+	"ferdxn--bck1b9a5dre4civilwarmanagementjxn--0trq7p7nnxn--bdddj-mr" +
+	"abdxn--bearalvhki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccav" +
+	"uotna-k7axn--bidr-5nachikatsuuraxn--bievt-0qa2xn--bjarky-fyaotsu" +
+	"rreyxn--bjddar-ptamayufuettertdasnetzxn--blt-elabourxn--bmlo-gra" +
+	"ingerxn--bod-2naroyxn--brnny-wuaccident-investigation-aptiblease" +
+	"ating-organicbcn-north-1xn--brnnysund-m8accident-prevention-webh" +
+	"openairbusantiquest-a-la-maisondre-landebudapest-a-la-masionionj" +
+	"ukudoyamagentositelekommunikationthewifiat-band-campaniaxn--brum" +
+	"-voagatroandinosaurepbodynathomebuiltrentinosued-tirolxn--btsfjo" +
+	"rd-9zaxn--c1avgxn--c2br7gxn--c3s14minnesotaketakatsukis-into-car" +
+	"shiranukanagawaxn--cck2b3barsyonlinewhollandishakotanavigationav" +
+	"oibmdisrechtranakaiwamizawaweddingjesdalimoliserniaustinnatuurwe" +
+	"tenschappenaumburgjerdrumckinseyokosukanzakiyokawaragrocerybnika" +
+	"hokutobamaintenancebetsuikicks-assedic66xn--cg4bkis-with-theband" +
+	"ovre-eikerxn--ciqpnxn--clchc0ea0b2g2a9gcdn77-sslattumintelligenc" +
+	"exn--comunicaes-v6a2oxn--correios-e-telecomunicaes-ghc29axn--czr" +
+	"694bashkiriaustraliaisondriodejaneirochesterxn--czrs0trogstadxn-" +
+	"-czru2dxn--czrw28basilicataniaustrheimatunduhrennesoyokotebinore" +
+	"-og-uvdalaziobiraskvolloabathsbcasacamdvrcampobassociatestingjem" +
+	"nes3-ap-southeast-1xn--d1acj3basketballyngenavuotnaklodzkodairau" +
+	"thordalandroiddnss3-eu-west-2xn--d1alfaromeoxn--d1atromsaitomobe" +
+	"llevuelosangelesjaguarmeniaxn--d5qv7z876claimsardiniaxn--davvenj" +
+	"rga-y4axn--djrs72d6uyxn--djty4kosaigawaxn--dnna-grajewolterskluw" +
+	"erxn--drbak-wuaxn--dyry-iraxn--e1a4clanbibaidarq-axn--eckvdtc9dx" +
+	"n--efvn9srlxn--efvy88haibarakisosakitagawaxn--ehqz56nxn--elqq16h" +
+	"air-surveillancexn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct42" +
+	"9kosakaerodromegallupinbarefootballfinanzgoraurskog-holandroverh" +
+	"alla-speziaetnagahamaroygardenebakkeshibechambagriculturennebude" +
+	"jjudygarlandd-dnshome-webservercellikes-piedmontblancomeeres3-ap" +
+	"-south-1kappchizippodhaleangaviikadenadexetereport3l3p0rtargets-" +
+	"itargivestbytomaritimobaravennagasuke12hpalace164lima-cityeatsel" +
+	"inogradultarnobrzegyptianativeamericanantiques3-ap-northeast-133" +
+	"7xn--fhbeiarnxn--finny-yuaxn--fiq228c5hsrtrentinostirolxn--fiq64" +
+	"batodayonagoyautomotivecoalvdalaskanittedallasalleasinglesurance" +
+	"rtmgretagajoboji234xn--fiqs8srvaporcloudxn--fiqz9storagexn--fjor" +
+	"d-lraxn--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--fpcrj9c3dxn" +
+	"--frde-grandrapidstordalxn--frna-woaraisaijotromsojampagefrontap" +
+	"piemontexn--frya-hraxn--fzc2c9e2cldmailuxembourgrongaxn--fzys8d6" +
+	"9uvgmailxn--g2xx48clickasumigaurawa-mazowszextraspacekitagatajir" +
+	"issagaeroclubmedecincinnationwidealstahaugesunderseaportsinfolld" +
+	"alabamagasakishimabarackmazerbaijan-mayendoftheinternetflixilove" +
+	"collegefantasyleaguernseyxn--gckr3f0fedorapeopleirfjordynvpncher" +
+	"nivtsiciliaxn--gecrj9clinichernigovernmentjometacentruminamiawaj" +
+	"ikis-a-doctorayxn--ggaviika-8ya47hakatanoshiroomuraxn--gildeskl-" +
+	"g0axn--givuotna-8yasakaiminatoyonezawaxn--gjvik-wuaxn--gk3at1exn" +
+	"--gls-elacaixaxn--gmq050isleofmandalxn--gmqw5axn--h-2failxn--h1a" +
+	"eghakodatexn--h2breg3evenestorepaircraftrentinosud-tirolxn--h2br" +
+	"j9c8cliniquenoharaxn--h3cuzk1digitalxn--hbmer-xqaxn--hcesuolo-7y" +
+	"a35batsfjordivtasvuodnakamagayahababyglandivttasvuotnakamurataji" +
+	"mibuildingjovikarasjokarasuyamarylhurstjohnayorovnoceanographics" +
+	"3-us-west-1xn--hery-iraxn--hgebostad-g3axn--hmmrfeasta-s4acctrus" +
+	"teexn--hnefoss-q1axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hx" +
+	"t814exn--hyanger-q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513nxn" +
+	"--indery-fyasugivingxn--io0a7issmarterthanyouxn--j1aefedoraproje" +
+	"ctoyotomiyazakis-a-knightpointtokaizukamikoaniikappugliaxn--j1am" +
+	"hakonexn--j6w193gxn--jlq61u9w7bauhausposts-and-telecommunication" +
+	"sncfdiyonaguniversityoriikarateu-4xn--jlster-byasuokanraxn--jrpe" +
+	"land-54axn--jvr189misakis-into-cartoonshiraois-a-techietis-a-the" +
+	"rapistoiaxn--k7yn95exn--karmy-yuaxn--kbrq7oxn--kcrx77d1x4axn--kf" +
+	"jord-iuaxn--klbu-woaxn--klt787dxn--kltp7dxn--kltx9axn--klty5xn--" +
+	"3e0b707exn--koluokta-7ya57hakubaghdadxn--kprw13dxn--kpry57dxn--k" +
+	"pu716fermodalenxn--kput3iwchofunatoriginsurecreationishiwakis-a-" +
+	"geekashiwazakiyosatokashikiyosemitexn--krager-gyatomitamamuraxn-" +
+	"-kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49j" +
+	"elenia-goraxn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyatsukanumazu" +
+	"ryxn--kvnangen-k0axn--l-1fairwindstorfjordxn--l1accentureklambor" +
+	"ghiniizaxn--laheadju-7yatsushiroxn--langevg-jxaxn--lcvr32dxn--ld" +
+	"ingen-q1axn--leagaviika-52bbcasertaipeiheijiitatebayashiibahcavu" +
+	"otnagaraholtalenvironmentalconservationflfanfshostrowiecasinordl" +
+	"andnpalermomahachijorpelandrangedalindashorokanaieverbankaratsug" +
+	"inamikatagamiharuconnectashkentatamotors3-us-west-2xn--lesund-hu" +
+	"axn--lgbbat1ad8jeonnamerikawauexn--lgrd-poaclintonoshoesarluxury" +
+	"xn--lhppi-xqaxn--linds-pramericanartrvareserveblogspotrentinosue" +
+	"dtirolxn--lns-qlapyatigorskypexn--loabt-0qaxn--lrdal-sraxn--lren" +
+	"skog-54axn--lt-liaclothingdustkakamigaharaxn--lten-granexn--lury" +
+	"-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--mgb2ddestorjdevclo" +
+	"udfrontdoorxn--mgb9awbferraraxn--mgba3a3ejtrysiljanxn--mgba3a4f1" +
+	"6axn--mgba3a4franamizuholdingsmilelverumisasaguris-into-gamessin" +
+	"atsukigatakasagotembaixadaxn--mgba7c0bbn0axn--mgbaakc7dvferrarit" +
+	"togoldpoint2thisamitsukexn--mgbaam7a8hakuis-a-personaltrainerxn-" +
+	"-mgbab2bdxn--mgbai9a5eva00bbtatarantottoriiyamanouchikuhokuryuga" +
+	"sakitaurayasudautoscanadaejeonbukaragandasnesoddenmarkhangelskja" +
+	"kdnepropetrovskiervaapsteiermark12xn--mgbai9azgqp6jetztrentino-a" +
+	"-adigexn--mgbayh7gpagespeedmobilizeroxn--mgbb9fbpobanazawaxn--mg" +
+	"bbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mgberp4a5d4a87gxn--mgbe" +
+	"rp4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--mgbpl2fhskodjejuegosh" +
+	"ikiminokamoenairportland-4-salernoboribetsuckstpetersburgxn--mgb" +
+	"qly7c0a67fbcnsarpsborgrossetouchijiwadegreexn--mgbqly7cvafranzis" +
+	"kanerdpolicexn--mgbt3dhdxn--mgbtf8flatangerxn--mgbtx2bbvacations" +
+	"watch-and-clockerxn--mgbx4cd0abbottulanxessor-varangerxn--mix082" +
+	"ferreroticanonoichinomiyakexn--mix891fetsundyroyrvikinguitarscho" +
+	"larshipschoolxn--mjndalen-64axn--mk0axindustriesteamfamberkeleyx" +
+	"n--mk1bu44cntkmaxxn--11b4c3dyndns-wikinkobayashikaoirminamibosog" +
+	"ndaluzernxn--mkru45ixn--mlatvuopmi-s4axn--mli-tlaquilanciaxn--ml" +
+	"selv-iuaxn--moreke-juaxn--mori-qsakuhokkaidoomdnsiskinkyotobetsu" +
+	"midatlanticolognextdirectmparaglidingroundhandlingroznyxn--mosje" +
+	"n-eyawaraxn--mot-tlarvikoseis-an-actresshirakofuefukihaboromskog" +
+	"xn--mre-og-romsdal-qqbentleyoshiokaracoldwarmiamihamadaveroykeni" +
+	"waizumiotsukuibestadds3-external-1xn--msy-ula0hakusandiegoodyear" +
+	"xn--mtta-vrjjat-k7afamilycompanycolonialwilliamsburgrparisor-fro" +
+	"nxn--muost-0qaxn--mxtq1misawaxn--ngbc5azdxn--ngbe9e0axn--ngbrxn-" +
+	"-3hcrj9cistrondheimmobilienxn--nit225kosherbrookegawaxn--nmesjev" +
+	"uemie-tcbalestrandabergamoarekexn--nnx388axn--nodessakuragawaxn-" +
+	"-nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--nttery-bya" +
+	"eservecounterstrikexn--nvuotna-hwaxn--nyqy26axn--o1achattanoogan" +
+	"ordre-landxn--o3cw4haldenxn--o3cyx2axn--od0algxn--od0aq3beppubli" +
+	"shproxyzgorzeleccollectionhlfanhs3-website-ap-northeast-1xn--ogb" +
+	"pf8flekkefjordxn--oppegrd-ixaxn--ostery-fyawatahamaxn--osyro-wua" +
+	"xn--p1acfgujolsterxn--p1aixn--pbt977coloradoplateaudioxn--pgbs0d" +
+	"hlxn--porsgu-sta26fhvalerxn--pssu33lxn--pssy2uxn--q9jyb4columbus" +
+	"heyxn--qcka1pmcdonaldstreamuneuesolutionsomaxn--qqqt11misconfuse" +
+	"dxn--qxamusementunesorfoldxn--rady-iraxn--rdal-poaxn--rde-ulavag" +
+	"iskexn--rdy-0nabarixn--rennesy-v1axn--rhkkervju-01aflakstadaokag" +
+	"akibichuoxn--rholt-mragowoodsideltaitogliattirestudioxn--rhqv96g" +
+	"xn--rht27zxn--rht3dxn--rht61exn--risa-5narusawaxn--risr-iraxn--r" +
+	"land-uuaxn--rlingen-mxaxn--rmskog-byaxn--rny31halsaikitahatakama" +
+	"tsukawaxn--rovu88bernuorockartuzyukinfinitintuitateshinanomachim" +
+	"kentateyamavocatanzarowebspacebizenakanojohanamakinoharassnasaba" +
+	"erobatickets3-ap-southeast-2xn--rros-granvindafjordxn--rskog-uua" +
+	"xn--rst-0narutokyotangovtunkoninjamisonxn--rsta-francaiseharaxn-" +
+	"-rvc1e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1faithruheredumbrell" +
+	"ajollamericanexpressexyxn--s9brj9communitysnesarufutsunomiyawaka" +
+	"saikaitakoelnxn--sandnessjen-ogbizxn--sandy-yuaxn--seral-lraxn--" +
+	"ses554gxn--sgne-gratangenxn--skierv-utazaskoyabearalvahkijobserv" +
+	"erisignieznoipifonymishimatsunoxn--skjervy-v1axn--skjk-soaxn--sk" +
+	"nit-yqaxn--sknland-fxaxn--slat-5narviikamitondabayashiogamagoriz" +
+	"iaxn--slt-elabbvieeexn--smla-hraxn--smna-gratis-a-bulls-fanxn--s" +
+	"nase-nraxn--sndre-land-0cbremangerxn--snes-poaxn--snsa-roaxn--sr" +
+	"-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varanger-ggbeski" +
+	"dyn-o-saurlandes3-website-ap-southeast-1xn--srfold-byaxn--srreis" +
+	"a-q1axn--srum-grazxn--stfold-9xaxn--stjrdal-s1axn--stjrdalshalse" +
+	"n-sqbestbuyshouses3-website-ap-southeast-2xn--stre-toten-zcbstud" +
+	"yndns-at-homedepotenzamamicrolightingxn--t60b56axn--tckweatherch" +
+	"annelxn--tiq49xqyjevnakershuscountryestateofdelawarezzoologyxn--" +
+	"tjme-hraxn--tn0agrinet-freakstuff-4-salexn--tnsberg-q1axn--tor13" +
+	"1oxn--trany-yuaxn--trgstad-r1axn--trna-woaxn--troms-zuaxn--tysvr" +
+	"-vraxn--uc0atvarggatrentoyokawaxn--uc0ay4axn--uist22hammarfeasta" +
+	"fricapetownnews-stagingxn--uisz3gxn--unjrga-rtaobaokinawashirosa" +
+	"tochiokinoshimalatvuopmiasakuchinotsuchiurakawalesundxn--unup4yx" +
+	"n--uuwu58axn--vads-jraxn--vard-jraxn--vegrshei-c0axn--vermgensbe" +
+	"rater-ctbetainaboxfusejnynysadodgeometre-experts-comptables3-web" +
+	"site-eu-west-1xn--vermgensberatung-pwbieigersundray-dnsupdaterno" +
+	"pilawavoues3-fips-us-gov-west-1xn--vestvgy-ixa6oxn--vg-yiabcgxn-" +
+	"-vgan-qoaxn--vgsy-qoa0jewelryxn--vgu402comobilyxn--vhquvaroyxn--" +
+	"vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bi" +
+	"elawalmartatsunoceanographiquevje-og-hornnes3-website-sa-east-1x" +
+	"n--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1comparemarkerr" +
+	"yhotelsasayamaxn--wgbl6axn--xhq521biellaakesvuemieleccexn--xkc2a" +
+	"l3hye2axn--xkc2dl3a5ee0hamurakamigoris-a-photographerokuappfizer" +
+	"xn--y9a3aquariumissilewismillerxn--yer-znarvikoshimizumakis-an-a" +
+	"narchistoricalsocietyxn--yfro4i67oxn--ygarden-p1axn--ygbi2ammxn-" +
+	"-3oq18vl8pn36axn--ystre-slidre-ujbieszczadygeyachimataikikuchiku" +
+	"seikarugamvikareliancexn--zbx025dxn--zf0ao64axn--zf0avxn--3pxu8k" +
+	"onyveloftrentino-aadigexn--zfr164bievatmallorcadaques3-website-u" +
+	"s-east-1xperiaxz"
+
+// nodes is the list of nodes. Each node is represented as a uint32, which
+// encodes the node's children, wildcard bit and node type (as an index into
+// the children array), ICANN bit and text.
+//
+// If the table was generated with the -comments flag, there is a //-comment
+// after each node's data. In it is the nodes-array indexes of the children,
+// formatted as (n0x1234-n0x1256), with * denoting the wildcard bit. The
+// nodeType is printed as + for normal, ! for exception, and o for parent-only
+// nodes that have children but don't match a domain label in their own right.
+// An I denotes an ICANN domain.
+//
+// The layout within the uint32, from MSB to LSB, is:
+//	[ 0 bits] unused
+//	[10 bits] children index
+//	[ 1 bits] ICANN bit
+//	[15 bits] text index
+//	[ 6 bits] text length
+var nodes = [...]uint32{
+	0x31fe83,
+	0x28e944,
+	0x2ed8c6,
+	0x380743,
+	0x380746,
+	0x3a5306,
+	0x3b5e43,
+	0x30a7c4,
+	0x20d0c7,
+	0x2ed508,
+	0x1a07102,
+	0x31f1c7,
+	0x368c09,
+	0x2d68ca,
+	0x2d68cb,
+	0x238503,
+	0x2dec46,
+	0x23d6c5,
+	0x1e07542,
+	0x21cf84,
+	0x266d03,
+	0x346145,
+	0x22035c2,
+	0x20a643,
+	0x271f944,
+	0x342285,
+	0x2a10042,
+	0x38a48e,
+	0x255083,
+	0x3affc6,
+	0x2e00142,
+	0x2d4207,
+	0x240d86,
+	0x3204f02,
+	0x22ee43,
+	0x256204,
+	0x32d106,
+	0x25b788,
+	0x2811c6,
+	0x378fc4,
+	0x3600242,
+	0x33b8c9,
+	0x212107,
+	0x2e6046,
+	0x341809,
+	0x2a0048,
+	0x33a904,
+	0x2a0f46,
+	0x21f886,
+	0x3a02d42,
+	0x3a014f,
+	0x28c84e,
+	0x21bfc4,
+	0x382c85,
+	0x30a6c5,
+	0x2e2109,
+	0x249089,
+	0x33b1c7,
+	0x23f8c6,
+	0x20ae43,
+	0x3e01d42,
+	0x2e3203,
+	0x225d0a,
+	0x20cac3,
+	0x242f85,
+	0x28e142,
+	0x28e149,
+	0x4200bc2,
+	0x209204,
+	0x28ad46,
+	0x2e5c05,
+	0x361644,
+	0x4a1a344,
+	0x203ec3,
+	0x218d04,
+	0x4e00702,
+	0x2f8e84,
+	0x52f5f04,
+	0x339bca,
+	0x5600f82,
+	0x28bc47,
+	0x281548,
+	0x6206502,
+	0x31d0c7,
+	0x2c6d44,
+	0x2c6d47,
+	0x393c45,
+	0x35e887,
+	0x33af86,
+	0x271dc4,
+	0x378385,
+	0x28ea47,
+	0x72001c2,
+	0x224143,
+	0x200c42,
+	0x200c43,
+	0x760b5c2,
+	0x20f4c5,
+	0x7a01d02,
+	0x357844,
+	0x27e405,
+	0x21bf07,
+	0x25aece,
+	0x2bf044,
+	0x23df04,
+	0x211c43,
+	0x28a4c9,
+	0x30eacb,
+	0x2ea6c8,
+	0x3415c8,
+	0x306208,
+	0x2b7288,
+	0x33a74a,
+	0x35e787,
+	0x321606,
+	0x7e8f282,
+	0x36a683,
+	0x377683,
+	0x37fd44,
+	0x3b5e83,
+	0x32c343,
+	0x1727e02,
+	0x8203302,
+	0x283f45,
+	0x29e006,
+	0x2da184,
+	0x388547,
+	0x2fa686,
+	0x389384,
+	0x3aa107,
+	0x223d43,
+	0x86cd5c2,
+	0x8a0d342,
+	0x8e1e642,
+	0x21e646,
+	0x9200002,
+	0x2501c5,
+	0x329343,
+	0x201684,
+	0x2efb04,
+	0x2efb05,
+	0x203c43,
+	0x979c783,
+	0x9a092c2,
+	0x291d85,
+	0x291d8b,
+	0x343c06,
+	0x21270b,
+	0x226544,
+	0x213a49,
+	0x2148c4,
+	0x9e14b02,
+	0x215943,
+	0x216283,
+	0x1616b42,
+	0x275fc3,
+	0x216b4a,
+	0xa201102,
+	0x21d205,
+	0x29a88a,
+	0x2e0544,
+	0x201103,
+	0x325384,
+	0x21ae03,
+	0x21ae04,
+	0x21ae07,
+	0x21b605,
+	0x21d685,
+	0x21dc46,
+	0x21dfc6,
+	0x21ea43,
+	0x222688,
+	0x206c03,
+	0xa60c702,
+	0x245848,
+	0x23614b,
+	0x228908,
+	0x228e06,
+	0x229dc7,
+	0x22da48,
+	0xb6024c2,
+	0xba430c2,
+	0x32da08,
+	0x233347,
+	0x2e7b45,
+	0x2e7b48,
+	0x2c3b08,
+	0x2be483,
+	0x232e04,
+	0x37fd82,
+	0xbe34382,
+	0xc23e102,
+	0xca37302,
+	0x237303,
+	0xce01382,
+	0x30a783,
+	0x300f44,
+	0x20a043,
+	0x322844,
+	0x20d7cb,
+	0x2322c3,
+	0x2e6a46,
+	0x245f44,
+	0x2982ce,
+	0x381245,
+	0x3b00c8,
+	0x263347,
+	0x26334a,
+	0x22e803,
+	0x317a07,
+	0x30ec85,
+	0x23a384,
+	0x272706,
+	0x272707,
+	0x330f44,
+	0x301f87,
+	0x25a184,
+	0x25b204,
+	0x25b206,
+	0x25f704,
+	0x36bdc6,
+	0x216983,
+	0x233108,
+	0x316ec8,
+	0x23dec3,
+	0x275f83,
+	0x3a6604,
+	0x3aae83,
+	0xd235f42,
+	0xd6df482,
+	0x207143,
+	0x203f86,
+	0x2a1043,
+	0x285184,
+	0xda165c2,
+	0x2165c3,
+	0x35f083,
+	0x21fe02,
+	0xde008c2,
+	0x2c9786,
+	0x23e347,
+	0x2fd645,
+	0x38fd04,
+	0x294d45,
+	0x2f8a47,
+	0x2add85,
+	0x2e4689,
+	0x2e9906,
+	0x2ef808,
+	0x2fd546,
+	0xe20e982,
+	0x2ddb08,
+	0x300d06,
+	0x219205,
+	0x316887,
+	0x316dc4,
+	0x316dc5,
+	0x281384,
+	0x345d88,
+	0xe6127c2,
+	0xea04882,
+	0x33ca06,
+	0x2cf588,
+	0x34d485,
+	0x351546,
+	0x356108,
+	0x371488,
+	0xee35dc5,
+	0xf214f44,
+	0x34e247,
+	0xf614602,
+	0xfa22902,
+	0x10e0f882,
+	0x28ae45,
+	0x2aaa45,
+	0x30af86,
+	0x350007,
+	0x386287,
+	0x11638543,
+	0x2b0307,
+	0x30e7c8,
+	0x3a0849,
+	0x38a647,
+	0x3b9c87,
+	0x238788,
+	0x238f86,
+	0x239e86,
+	0x23aacc,
+	0x23c08a,
+	0x23c407,
+	0x23d58b,
+	0x23e187,
+	0x23e18e,
+	0x19a3f304,
+	0x240244,
+	0x242547,
+	0x3ac747,
+	0x246d46,
+	0x246d47,
+	0x247407,
+	0x19e29682,
+	0x2495c6,
+	0x2495ca,
+	0x24a08b,
+	0x24ac87,
+	0x24b845,
+	0x24bb83,
+	0x24bdc6,
+	0x24bdc7,
+	0x20d283,
+	0x1a206e02,
+	0x24c78a,
+	0x1a769d02,
+	0x1aa4f282,
+	0x1ae4dd42,
+	0x1b240e82,
+	0x24e9c5,
+	0x24ef44,
+	0x1ba1a442,
+	0x2f8f05,
+	0x24a683,
+	0x2149c5,
+	0x2b7184,
+	0x205ec4,
+	0x25a486,
+	0x262586,
+	0x291f83,
+	0x204844,
+	0x3894c3,
+	0x1c204c82,
+	0x210ac4,
+	0x210ac6,
+	0x34e7c5,
+	0x37e946,
+	0x316988,
+	0x273544,
+	0x266ac8,
+	0x398785,
+	0x22bc88,
+	0x2b2dc6,
+	0x26d907,
+	0x233d84,
+	0x233d86,
+	0x242bc3,
+	0x393fc3,
+	0x211d08,
+	0x322004,
+	0x356747,
+	0x20c7c6,
+	0x2dedc9,
+	0x322a88,
+	0x325448,
+	0x331ac4,
+	0x35f103,
+	0x229942,
+	0x1d2234c2,
+	0x1d61a202,
+	0x36c083,
+	0x1da08e02,
+	0x20d204,
+	0x3521c6,
+	0x3b3745,
+	0x24fa83,
+	0x23cf44,
+	0x2b95c7,
+	0x25a783,
+	0x251208,
+	0x218405,
+	0x264143,
+	0x27e385,
+	0x27e4c4,
+	0x300a06,
+	0x218f84,
+	0x21ab86,
+	0x21be46,
+	0x210584,
+	0x23e543,
+	0x1de1a582,
+	0x23dd05,
+	0x20b9c3,
+	0x1e20c882,
+	0x23aa83,
+	0x2231c5,
+	0x23cac3,
+	0x23cac9,
+	0x1e606b82,
+	0x1ee07842,
+	0x2918c5,
+	0x2211c6,
+	0x2d9d46,
+	0x2bb248,
+	0x2bb24b,
+	0x203fcb,
+	0x220bc5,
+	0x2fd845,
+	0x2cdfc9,
+	0x1600302,
+	0x210748,
+	0x213d44,
+	0x1f601842,
+	0x326403,
+	0x1fecdd46,
+	0x348e08,
+	0x20208b42,
+	0x2bdec8,
+	0x2060c182,
+	0x2bf7ca,
+	0x20a3fd03,
+	0x203606,
+	0x36cc48,
+	0x209708,
+	0x3b3a46,
+	0x37c807,
+	0x3a0347,
+	0x34daca,
+	0x2e05c4,
+	0x354d44,
+	0x368649,
+	0x2139fb45,
+	0x28ca46,
+	0x210083,
+	0x253d44,
+	0x2160df44,
+	0x20df47,
+	0x22c507,
+	0x234404,
+	0x2df805,
+	0x30b048,
+	0x375e07,
+	0x381007,
+	0x21a07602,
+	0x32e984,
+	0x29b188,
+	0x2504c4,
+	0x251844,
+	0x251c45,
+	0x251d87,
+	0x222349,
+	0x252a04,
+	0x253149,
+	0x253388,
+	0x253ac4,
+	0x253ac7,
+	0x21e54003,
+	0x254187,
+	0x1609c42,
+	0x16b4a42,
+	0x254b86,
+	0x2550c7,
+	0x255584,
+	0x257687,
+	0x258d47,
+	0x259983,
+	0x2f6802,
+	0x207d82,
+	0x231683,
+	0x231684,
+	0x23168b,
+	0x3416c8,
+	0x263c84,
+	0x25c985,
+	0x25eb47,
+	0x260105,
+	0x2c8c0a,
+	0x263bc3,
+	0x22206b02,
+	0x206b04,
+	0x267189,
+	0x26a743,
+	0x26a807,
+	0x373089,
+	0x212508,
+	0x2db543,
+	0x282f07,
+	0x283649,
+	0x23d483,
+	0x289844,
+	0x28d209,
+	0x290146,
+	0x21c203,
+	0x200182,
+	0x264d83,
+	0x2b4847,
+	0x2c3e85,
+	0x3413c6,
+	0x259004,
+	0x374e05,
+	0x225cc3,
+	0x20e646,
+	0x213c42,
+	0x3a1784,
+	0x2260d382,
+	0x226603,
+	0x22a01802,
+	0x251743,
+	0x21e444,
+	0x21e447,
+	0x201986,
+	0x20df02,
+	0x22e0dec2,
+	0x2c4244,
+	0x23235182,
+	0x23601b82,
+	0x265704,
+	0x265705,
+	0x345105,
+	0x35c386,
+	0x23a074c2,
+	0x2074c5,
+	0x213005,
+	0x2157c3,
+	0x219d06,
+	0x21a645,
+	0x21e5c2,
+	0x34d0c5,
+	0x21e5c4,
+	0x228203,
+	0x22a443,
+	0x23e11442,
+	0x2dcf47,
+	0x376084,
+	0x376089,
+	0x253c44,
+	0x2357c3,
+	0x300589,
+	0x389e08,
+	0x242aa8c4,
+	0x2aa8c6,
+	0x219983,
+	0x25d3c3,
+	0x323043,
+	0x246eebc2,
+	0x379b82,
+	0x24a17202,
+	0x32af48,
+	0x358e08,
+	0x3a5a46,
+	0x2fd0c5,
+	0x317885,
+	0x333d07,
+	0x2247c5,
+	0x210642,
+	0x24e04742,
+	0x160a442,
+	0x2447c8,
+	0x2dda45,
+	0x2bfbc4,
+	0x2f2845,
+	0x381d87,
+	0x240944,
+	0x24c682,
+	0x25200582,
+	0x33ffc4,
+	0x21ca07,
+	0x292507,
+	0x35e844,
+	0x29a843,
+	0x23de04,
+	0x23de08,
+	0x23a1c6,
+	0x27258a,
+	0x222204,
+	0x29abc8,
+	0x290584,
+	0x229ec6,
+	0x29c484,
+	0x28b146,
+	0x376349,
+	0x274847,
+	0x241243,
+	0x256351c2,
+	0x2755c3,
+	0x214d02,
+	0x25a52e42,
+	0x313486,
+	0x374588,
+	0x2ac047,
+	0x3ab249,
+	0x299f49,
+	0x2acf05,
+	0x2adec9,
+	0x2ae685,
+	0x2ae7c9,
+	0x2afe45,
+	0x2b11c8,
+	0x25e0a104,
+	0x26259ac7,
+	0x2b13c3,
+	0x2b13c7,
+	0x3ba046,
+	0x2b1a47,
+	0x2a9b05,
+	0x2a2cc3,
+	0x26636d02,
+	0x339704,
+	0x26a42a42,
+	0x266603,
+	0x26e206c2,
+	0x30df06,
+	0x2814c5,
+	0x2b3cc7,
+	0x332043,
+	0x32c2c4,
+	0x217003,
+	0x342c43,
+	0x27205e82,
+	0x27a0c442,
+	0x3a5404,
+	0x2f67c3,
+	0x24e545,
+	0x27e01c82,
+	0x286007c2,
+	0x2c8286,
+	0x322144,
+	0x38c444,
+	0x38c44a,
+	0x28e00942,
+	0x38298a,
+	0x39b8c8,
+	0x29231604,
+	0x2046c3,
+	0x20d8c3,
+	0x306349,
+	0x25bd09,
+	0x364986,
+	0x29655783,
+	0x335d45,
+	0x30d2cd,
+	0x39ba86,
+	0x204f4b,
+	0x29a02b02,
+	0x225b48,
+	0x2be22782,
+	0x2c203e02,
+	0x2b1685,
+	0x2c604182,
+	0x266847,
+	0x21b987,
+	0x20bf43,
+	0x23b188,
+	0x2ca02542,
+	0x3780c4,
+	0x21a8c3,
+	0x348505,
+	0x364603,
+	0x33c406,
+	0x212a84,
+	0x275f43,
+	0x2b6443,
+	0x2ce09942,
+	0x2fd7c4,
+	0x379c85,
+	0x3b6587,
+	0x280003,
+	0x2b5103,
+	0x2b5c03,
+	0x1631182,
+	0x2b5cc3,
+	0x2b63c3,
+	0x2d2086c2,
+	0x3a2e44,
+	0x262786,
+	0x34ba83,
+	0x2086c3,
+	0x2d6b8042,
+	0x2b8048,
+	0x2b8304,
+	0x37ce46,
+	0x2b8bc7,
+	0x258346,
+	0x2a0304,
+	0x3b201702,
+	0x3b9f0b,
+	0x307c0e,
+	0x221d4f,
+	0x2ac5c3,
+	0x3ba64d42,
+	0x160b542,
+	0x3be00a82,
+	0x2e89c3,
+	0x2e4903,
+	0x2de046,
+	0x207986,
+	0x203007,
+	0x304704,
+	0x3c221302,
+	0x3c618742,
+	0x3a1205,
+	0x2e7007,
+	0x38c946,
+	0x3ca28142,
+	0x228144,
+	0x2bc743,
+	0x3ce09a02,
+	0x3d366443,
+	0x2bce04,
+	0x2c5409,
+	0x16cb602,
+	0x3d605242,
+	0x385d85,
+	0x3dacb882,
+	0x3de03582,
+	0x3541c7,
+	0x21b2c9,
+	0x368e8b,
+	0x3a0105,
+	0x2714c9,
+	0x384d06,
+	0x343c47,
+	0x3e206844,
+	0x341d89,
+	0x380907,
+	0x348ac7,
+	0x2122c3,
+	0x2122c6,
+	0x312247,
+	0x263a43,
+	0x263a46,
+	0x3ea01cc2,
+	0x3ee022c2,
+	0x22bf03,
+	0x32bec5,
+	0x25a007,
+	0x227906,
+	0x2c3e05,
+	0x207a84,
+	0x28ddc5,
+	0x2fae04,
+	0x3f204bc2,
+	0x337447,
+	0x2ca604,
+	0x24f3c4,
+	0x25bc0d,
+	0x25d749,
+	0x3ab748,
+	0x25e044,
+	0x234a85,
+	0x322907,
+	0x3329c4,
+	0x2fa747,
+	0x204bc5,
+	0x3f6ac504,
+	0x2b5e05,
+	0x269404,
+	0x256fc6,
+	0x34fe05,
+	0x3fa048c2,
+	0x2011c4,
+	0x2011c5,
+	0x3802c6,
+	0x206d85,
+	0x3c0144,
+	0x2cda83,
+	0x208d46,
+	0x222545,
+	0x22b605,
+	0x34ff04,
+	0x222283,
+	0x22228c,
+	0x3fe90a82,
+	0x40206702,
+	0x40600282,
+	0x211a83,
+	0x211a84,
+	0x40a02942,
+	0x2fba48,
+	0x341485,
+	0x34c984,
+	0x36ee86,
+	0x40e0d842,
+	0x41234502,
+	0x41601fc2,
+	0x2a6a85,
+	0x210446,
+	0x226144,
+	0x32d646,
+	0x28ba06,
+	0x215c83,
+	0x41b2770a,
+	0x2f6b05,
+	0x2f6fc3,
+	0x22a9c6,
+	0x30c989,
+	0x22a9c7,
+	0x29f648,
+	0x29ff09,
+	0x241b08,
+	0x22e546,
+	0x209b03,
+	0x41e0c202,
+	0x395343,
+	0x395349,
+	0x333608,
+	0x42253442,
+	0x42604a82,
+	0x229443,
+	0x2e4505,
+	0x25c404,
+	0x2c9ec9,
+	0x26eb44,
+	0x2e0908,
+	0x2050c3,
+	0x20dc44,
+	0x2acd03,
+	0x221208,
+	0x25bb47,
+	0x42e281c2,
+	0x270d02,
+	0x388b05,
+	0x272dc9,
+	0x28cac3,
+	0x284bc4,
+	0x335d04,
+	0x227543,
+	0x28580a,
+	0x43382842,
+	0x43601182,
+	0x2cd543,
+	0x384f83,
+	0x160dc02,
+	0x20ffc3,
+	0x43a14702,
+	0x43e00802,
+	0x4420f644,
+	0x20f646,
+	0x3b6a46,
+	0x248c44,
+	0x37d243,
+	0x200803,
+	0x2f60c3,
+	0x24a406,
+	0x30aa05,
+	0x2cd6c7,
+	0x343b09,
+	0x2d2d85,
+	0x2d3f46,
+	0x2d4908,
+	0x2d4b06,
+	0x260ec4,
+	0x2a1d8b,
+	0x2d8403,
+	0x2d8405,
+	0x2d8548,
+	0x22c2c2,
+	0x3544c2,
+	0x4464ea42,
+	0x44a14642,
+	0x221343,
+	0x44e745c2,
+	0x2745c3,
+	0x2d8844,
+	0x2d8e03,
+	0x45605902,
+	0x45a0c0c6,
+	0x2af186,
+	0x45edcac2,
+	0x462162c2,
+	0x4662a482,
+	0x46a00e82,
+	0x46e176c2,
+	0x47202ec2,
+	0x205383,
+	0x344905,
+	0x348206,
+	0x4761bf84,
+	0x34e5ca,
+	0x20bd46,
+	0x220e04,
+	0x28a483,
+	0x4820ea42,
+	0x204d42,
+	0x23d503,
+	0x48608e83,
+	0x2d8047,
+	0x34fd07,
+	0x49e31787,
+	0x23fcc7,
+	0x2309c3,
+	0x33188a,
+	0x263544,
+	0x3863c4,
+	0x3863ca,
+	0x24b685,
+	0x4a2190c2,
+	0x254b43,
+	0x4a601942,
+	0x21b543,
+	0x275583,
+	0x4ae02b82,
+	0x2b0284,
+	0x2256c4,
+	0x208105,
+	0x39e745,
+	0x2fc3c6,
+	0x2fc746,
+	0x4b206802,
+	0x4b600982,
+	0x3139c5,
+	0x2aee92,
+	0x259806,
+	0x231483,
+	0x315a06,
+	0x231485,
+	0x1616b82,
+	0x53a17102,
+	0x35fd43,
+	0x217103,
+	0x35d703,
+	0x53e02c82,
+	0x38a783,
+	0x54205b82,
+	0x20cc43,
+	0x3a2e88,
+	0x231e83,
+	0x231e86,
+	0x3b0c87,
+	0x26c286,
+	0x26c28b,
+	0x220d47,
+	0x339504,
+	0x54a00e42,
+	0x341305,
+	0x54e08e43,
+	0x2aec83,
+	0x32de85,
+	0x331783,
+	0x55331786,
+	0x2108ca,
+	0x2488c3,
+	0x240c44,
+	0x2cf4c6,
+	0x2364c6,
+	0x55601a03,
+	0x32c187,
+	0x364887,
+	0x2a3885,
+	0x251046,
+	0x222583,
+	0x57619f43,
+	0x57a0cb42,
+	0x34bd44,
+	0x22c24c,
+	0x232f09,
+	0x2445c7,
+	0x38ad45,
+	0x252c84,
+	0x25e6c8,
+	0x265d45,
+	0x57e6c505,
+	0x27b709,
+	0x2e6103,
+	0x24f204,
+	0x5821cc82,
+	0x221543,
+	0x5869bf42,
+	0x3bbe86,
+	0x16235c2,
+	0x58a35b42,
+	0x2a6988,
+	0x2ac343,
+	0x2b5d47,
+	0x2daa05,
+	0x2e5205,
+	0x2e520b,
+	0x2e58c6,
+	0x2e5406,
+	0x2e9006,
+	0x232b84,
+	0x2e9246,
+	0x58eeae88,
+	0x246003,
+	0x231a43,
+	0x231a44,
+	0x2ea484,
+	0x2eab87,
+	0x2ec3c5,
+	0x592ec502,
+	0x59607082,
+	0x207085,
+	0x295bc4,
+	0x2ef38b,
+	0x2efa08,
+	0x2998c4,
+	0x228182,
+	0x59e99842,
+	0x350e83,
+	0x2efec4,
+	0x2f0185,
+	0x2f0607,
+	0x2f2384,
+	0x220c04,
+	0x5a204102,
+	0x36f5c9,
+	0x2f3185,
+	0x3a03c5,
+	0x2f3e45,
+	0x5a621483,
+	0x2f4dc4,
+	0x2f4dcb,
+	0x2f5204,
+	0x2f5c0b,
+	0x2f6005,
+	0x221e8a,
+	0x2f7608,
+	0x2f780a,
+	0x2f7fc3,
+	0x2f7fca,
+	0x5aa33502,
+	0x5ae2fa42,
+	0x236903,
+	0x5b2f9f02,
+	0x2f9f03,
+	0x5b71c482,
+	0x5bb29ac2,
+	0x2fac84,
+	0x2227c6,
+	0x32d385,
+	0x2fd4c3,
+	0x320446,
+	0x317345,
+	0x262a84,
+	0x5be06b42,
+	0x2ba844,
+	0x2cdc4a,
+	0x22fd07,
+	0x2e5e86,
+	0x2612c7,
+	0x20c743,
+	0x2bce48,
+	0x39fd8b,
+	0x230305,
+	0x2f41c5,
+	0x2f41c6,
+	0x2ea004,
+	0x3bf388,
+	0x20e543,
+	0x21f784,
+	0x21f787,
+	0x355746,
+	0x344b06,
+	0x29810a,
+	0x250d44,
+	0x250d4a,
+	0x5c20c386,
+	0x20c387,
+	0x25ca07,
+	0x27b0c4,
+	0x27b0c9,
+	0x262445,
+	0x2439cb,
+	0x2eef43,
+	0x21ad43,
+	0x5c625b03,
+	0x23a584,
+	0x5ca00482,
+	0x2f70c6,
+	0x5cea2a45,
+	0x315c45,
+	0x258586,
+	0x352b04,
+	0x5d2044c2,
+	0x24bbc4,
+	0x5d60b282,
+	0x28b5c5,
+	0x236c84,
+	0x22cb43,
+	0x5de17142,
+	0x217143,
+	0x273e86,
+	0x5e204242,
+	0x2241c8,
+	0x22a844,
+	0x22a846,
+	0x204dc6,
+	0x25ec04,
+	0x208cc5,
+	0x214e48,
+	0x215647,
+	0x2159c7,
+	0x2159cf,
+	0x29b086,
+	0x22f483,
+	0x22f484,
+	0x36edc4,
+	0x213103,
+	0x22a004,
+	0x2494c4,
+	0x5e60fd02,
+	0x291cc3,
+	0x24bf43,
+	0x5ea0d2c2,
+	0x22f043,
+	0x20d2c3,
+	0x21d70a,
+	0x2e7d07,
+	0x381f0c,
+	0x3821c6,
+	0x2f5a86,
+	0x2f6447,
+	0x5ee0e947,
+	0x252d49,
+	0x245984,
+	0x253e04,
+	0x5f221382,
+	0x5f600a02,
+	0x2984c6,
+	0x32bf84,
+	0x2df606,
+	0x239048,
+	0x2bf2c4,
+	0x266886,
+	0x2d9d05,
+	0x26e488,
+	0x2041c3,
+	0x26fd85,
+	0x270b03,
+	0x3a04c3,
+	0x3a04c4,
+	0x206ac3,
+	0x5fa0e602,
+	0x5fe00742,
+	0x2eee09,
+	0x273885,
+	0x276bc4,
+	0x27ab05,
+	0x217e84,
+	0x2c62c7,
+	0x36ecc5,
+	0x231944,
+	0x231948,
+	0x2d6206,
+	0x2dac04,
+	0x2e0788,
+	0x2e1fc7,
+	0x60202502,
+	0x2e6f44,
+	0x2131c4,
+	0x348cc7,
+	0x60602504,
+	0x210f82,
+	0x60a06742,
+	0x227103,
+	0x2dfc84,
+	0x2b2143,
+	0x370645,
+	0x60e06d42,
+	0x2eeac5,
+	0x21b9c2,
+	0x35c7c5,
+	0x374745,
+	0x61204d02,
+	0x35f004,
+	0x61606182,
+	0x266d86,
+	0x2a7806,
+	0x272f08,
+	0x2c7588,
+	0x30de84,
+	0x2f97c5,
+	0x395809,
+	0x2fd8c4,
+	0x210884,
+	0x208483,
+	0x61a1f545,
+	0x2cb6c7,
+	0x28d004,
+	0x31288d,
+	0x332182,
+	0x33f203,
+	0x3479c3,
+	0x61e00d02,
+	0x397dc5,
+	0x212cc7,
+	0x23fd84,
+	0x23fd87,
+	0x2a0109,
+	0x2cdd89,
+	0x277e07,
+	0x20f803,
+	0x2ba348,
+	0x2522c9,
+	0x349c47,
+	0x355685,
+	0x395546,
+	0x398bc6,
+	0x3aaf05,
+	0x25d845,
+	0x62209142,
+	0x37da45,
+	0x2bad08,
+	0x2c9546,
+	0x626c0d47,
+	0x2f6244,
+	0x29bb07,
+	0x300246,
+	0x62a3b442,
+	0x37ffc6,
+	0x302d4a,
+	0x3035c5,
+	0x62ee6282,
+	0x63260a02,
+	0x312586,
+	0x2b36c8,
+	0x636926c7,
+	0x63a04502,
+	0x226783,
+	0x36a846,
+	0x22cf04,
+	0x3b0b46,
+	0x344e06,
+	0x36d78a,
+	0x377705,
+	0x208806,
+	0x2205c3,
+	0x2205c4,
+	0x203082,
+	0x314a43,
+	0x63e11ac2,
+	0x2f8483,
+	0x382c04,
+	0x2b3804,
+	0x2b380a,
+	0x22e603,
+	0x281288,
+	0x22e60a,
+	0x2b4247,
+	0x309306,
+	0x266c44,
+	0x220cc2,
+	0x228cc2,
+	0x64207002,
+	0x23ddc3,
+	0x25c7c7,
+	0x320707,
+	0x28e8c4,
+	0x39d147,
+	0x2f0706,
+	0x21e747,
+	0x233484,
+	0x398ac5,
+	0x2ce485,
+	0x6462be42,
+	0x231146,
+	0x327943,
+	0x371742,
+	0x383306,
+	0x64a08bc2,
+	0x64e05082,
+	0x3c0985,
+	0x6522a202,
+	0x65604782,
+	0x348085,
+	0x39e345,
+	0x2088c5,
+	0x26f003,
+	0x352285,
+	0x2e5987,
+	0x305cc5,
+	0x311985,
+	0x3b01c4,
+	0x24d486,
+	0x264544,
+	0x65a00d42,
+	0x666f2bc5,
+	0x2ab647,
+	0x3176c8,
+	0x29f806,
+	0x29f80d,
+	0x2aac09,
+	0x2aac12,
+	0x359f05,
+	0x36f8c3,
+	0x66a08882,
+	0x314544,
+	0x39bb03,
+	0x3963c5,
+	0x304a45,
+	0x66e1a902,
+	0x264183,
+	0x67231802,
+	0x67a43242,
+	0x67e1f342,
+	0x2ed385,
+	0x23fec3,
+	0x36d408,
+	0x68204382,
+	0x686000c2,
+	0x2b0246,
+	0x35f2ca,
+	0x205503,
+	0x209f43,
+	0x2ef103,
+	0x69202642,
+	0x77602cc2,
+	0x77e0d582,
+	0x206442,
+	0x37fdc9,
+	0x2caa44,
+	0x23b488,
+	0x782fd502,
+	0x78603642,
+	0x2f5e45,
+	0x23d9c8,
+	0x3a2fc8,
+	0x25920c,
+	0x22fac3,
+	0x78a68dc2,
+	0x78e0c402,
+	0x2d3206,
+	0x30a185,
+	0x2a7b83,
+	0x381c46,
+	0x30a2c6,
+	0x20d883,
+	0x30bc43,
+	0x30c146,
+	0x30cd84,
+	0x29d386,
+	0x2d85c5,
+	0x30d10a,
+	0x2397c4,
+	0x30e244,
+	0x30f08a,
+	0x79203442,
+	0x2413c5,
+	0x31018a,
+	0x310a85,
+	0x311344,
+	0x311446,
+	0x3115c4,
+	0x221806,
+	0x79611042,
+	0x33c0c6,
+	0x3b1b45,
+	0x3b80c7,
+	0x200206,
+	0x2de844,
+	0x2de847,
+	0x327646,
+	0x245345,
+	0x245347,
+	0x3abdc7,
+	0x3abdce,
+	0x232206,
+	0x2fa605,
+	0x202447,
+	0x216303,
+	0x3326c7,
+	0x2172c5,
+	0x21b0c4,
+	0x2343c2,
+	0x2432c7,
+	0x304784,
+	0x383884,
+	0x270b8b,
+	0x224e03,
+	0x2d4c47,
+	0x224e04,
+	0x2f11c7,
+	0x299543,
+	0x33dd4d,
+	0x398608,
+	0x224604,
+	0x231845,
+	0x312bc5,
+	0x313003,
+	0x79a0c4c2,
+	0x314a03,
+	0x314d43,
+	0x20f204,
+	0x283745,
+	0x22a4c7,
+	0x220646,
+	0x382943,
+	0x38344b,
+	0x259c8b,
+	0x2ac9cb,
+	0x2fbd4b,
+	0x2c578a,
+	0x30e48b,
+	0x32420b,
+	0x362f0c,
+	0x38bf4b,
+	0x3bdf51,
+	0x3bfd8a,
+	0x31604b,
+	0x31630c,
+	0x31660b,
+	0x316b8a,
+	0x317c8a,
+	0x318c8e,
+	0x31930b,
+	0x3195ca,
+	0x31a9d1,
+	0x31ae0a,
+	0x31b30b,
+	0x31b84e,
+	0x31c18c,
+	0x31c68b,
+	0x31c94e,
+	0x31cccc,
+	0x31d9ca,
+	0x31eccc,
+	0x79f1efca,
+	0x31f7c8,
+	0x320909,
+	0x3232ca,
+	0x32354a,
+	0x3237cb,
+	0x326d8e,
+	0x327111,
+	0x330189,
+	0x3303ca,
+	0x3313cb,
+	0x334a0a,
+	0x3354d6,
+	0x336e4b,
+	0x337b0a,
+	0x337f4a,
+	0x33a4cb,
+	0x33b749,
+	0x33e6c9,
+	0x33ec8d,
+	0x33f2cb,
+	0x34040b,
+	0x340dcb,
+	0x347049,
+	0x34768e,
+	0x347dca,
+	0x3494ca,
+	0x349a0a,
+	0x34a14b,
+	0x34a98b,
+	0x34ac4d,
+	0x34c50d,
+	0x34cd50,
+	0x34d20b,
+	0x35064c,
+	0x3512cb,
+	0x353ccb,
+	0x35528e,
+	0x355e0b,
+	0x355e0d,
+	0x35ae8b,
+	0x35b90f,
+	0x35bccb,
+	0x35c50a,
+	0x35cb49,
+	0x35de09,
+	0x35e18b,
+	0x35e44e,
+	0x36020b,
+	0x361acf,
+	0x36394b,
+	0x363c0b,
+	0x363ecb,
+	0x3643ca,
+	0x368a89,
+	0x36e04f,
+	0x372a8c,
+	0x3732cc,
+	0x37374e,
+	0x373ccf,
+	0x37408e,
+	0x375690,
+	0x375a8f,
+	0x37660e,
+	0x376f4c,
+	0x377252,
+	0x379891,
+	0x37a18e,
+	0x37a94e,
+	0x37ae8e,
+	0x37b20f,
+	0x37b5ce,
+	0x37b953,
+	0x37be11,
+	0x37c24c,
+	0x37c54e,
+	0x37c9cc,
+	0x37de53,
+	0x37ead0,
+	0x37f30c,
+	0x37f60c,
+	0x37facb,
+	0x38044e,
+	0x380d8b,
+	0x3816cb,
+	0x382fcc,
+	0x38b38a,
+	0x38b74c,
+	0x38ba4c,
+	0x38bd49,
+	0x38d7cb,
+	0x38da88,
+	0x38df49,
+	0x38df4f,
+	0x38f88b,
+	0x7a39028a,
+	0x391e4c,
+	0x393009,
+	0x393488,
+	0x39368b,
+	0x393d8b,
+	0x39490a,
+	0x394b8b,
+	0x3950cc,
+	0x396048,
+	0x398d4b,
+	0x39b1cb,
+	0x39ef4e,
+	0x3a05cb,
+	0x3a1f0b,
+	0x3ab94b,
+	0x3abc09,
+	0x3ac14d,
+	0x3b1d4a,
+	0x3b2c97,
+	0x3b4398,
+	0x3b6bc9,
+	0x3b7d0b,
+	0x3b8fd4,
+	0x3b94cb,
+	0x3b9a4a,
+	0x3ba38a,
+	0x3ba60b,
+	0x3badd0,
+	0x3bb1d1,
+	0x3bc00a,
+	0x3bd54d,
+	0x3bdc4d,
+	0x3c05cb,
+	0x3c1206,
+	0x231243,
+	0x7a791143,
+	0x26ed86,
+	0x248805,
+	0x22d287,
+	0x3240c6,
+	0x1608742,
+	0x2c1fc9,
+	0x320244,
+	0x2e4d48,
+	0x210943,
+	0x314487,
+	0x239202,
+	0x2b3d03,
+	0x7aa04542,
+	0x2d0d06,
+	0x2d2104,
+	0x37a844,
+	0x3443c3,
+	0x3443c5,
+	0x7b2cb8c2,
+	0x7b6aeb44,
+	0x27b007,
+	0x7ba43282,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x200e03,
+	0x207102,
+	0x16fb88,
+	0x20f882,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x215443,
+	0x32b7d6,
+	0x32ca13,
+	0x39cfc9,
+	0x34e148,
+	0x341189,
+	0x310306,
+	0x340010,
+	0x24c9d3,
+	0x355808,
+	0x2a0a87,
+	0x37d347,
+	0x28db0a,
+	0x232309,
+	0x3961c9,
+	0x28664b,
+	0x33af86,
+	0x20728a,
+	0x228e06,
+	0x31fe43,
+	0x2dce85,
+	0x233108,
+	0x266e4d,
+	0x28af0c,
+	0x218c87,
+	0x318fcd,
+	0x214f44,
+	0x23a84a,
+	0x23bbca,
+	0x23c08a,
+	0x24ccc7,
+	0x246b87,
+	0x24a904,
+	0x233d86,
+	0x209d44,
+	0x2c7ec8,
+	0x26eb89,
+	0x2bb246,
+	0x2bb248,
+	0x24d18d,
+	0x2cdfc9,
+	0x209708,
+	0x3a0347,
+	0x300fca,
+	0x2550c6,
+	0x2664c7,
+	0x2bd584,
+	0x292347,
+	0x35180a,
+	0x38690e,
+	0x2247c5,
+	0x29224b,
+	0x32f709,
+	0x25bd09,
+	0x21b7c7,
+	0x2936ca,
+	0x348c07,
+	0x307d49,
+	0x20b808,
+	0x33420b,
+	0x2e4505,
+	0x3ab60a,
+	0x2734c9,
+	0x331d0a,
+	0x2d2e0b,
+	0x38668b,
+	0x2863d5,
+	0x30be85,
+	0x3a03c5,
+	0x2f4dca,
+	0x364a8a,
+	0x32f487,
+	0x2252c3,
+	0x298448,
+	0x2db34a,
+	0x22a846,
+	0x252109,
+	0x26e488,
+	0x2dac04,
+	0x2b2149,
+	0x2c7588,
+	0x2b2d07,
+	0x2f2bc6,
+	0x2ab647,
+	0x376d87,
+	0x24a205,
+	0x22460c,
+	0x231845,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x20f882,
+	0x238543,
+	0x208e83,
+	0x200e03,
+	0x201a03,
+	0x238543,
+	0x208e83,
+	0xe03,
+	0x231e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x16fb88,
+	0x20f882,
+	0x201742,
+	0x23c2c2,
+	0x202542,
+	0x200542,
+	0x2e6dc2,
+	0x4638543,
+	0x23cac3,
+	0x21b583,
+	0x323043,
+	0x255783,
+	0x28cac3,
+	0x2dcd86,
+	0x208e83,
+	0x201a03,
+	0x20bdc3,
+	0x16fb88,
+	0x345b44,
+	0x20da07,
+	0x2112c3,
+	0x2b1684,
+	0x208543,
+	0x21b843,
+	0x323043,
+	0x36dc7,
+	0x145944,
+	0xf183,
+	0x145c05,
+	0x207102,
+	0x19c783,
+	0x5a0f882,
+	0x1490fc9,
+	0x9144d,
+	0x9178d,
+	0x23c2c2,
+	0x31604,
+	0x145c49,
+	0x200442,
+	0x5f4ed48,
+	0xf4544,
+	0x16fb88,
+	0x1409702,
+	0x1510cc6,
+	0x239283,
+	0x2bcc43,
+	0x6638543,
+	0x23a844,
+	0x6a3cac3,
+	0x6f23043,
+	0x205e82,
+	0x231604,
+	0x208e83,
+	0x301dc3,
+	0x2014c2,
+	0x201a03,
+	0x222dc2,
+	0x2fabc3,
+	0x204242,
+	0x205983,
+	0x26e543,
+	0x200202,
+	0x16fb88,
+	0x239283,
+	0x301dc3,
+	0x2014c2,
+	0x2fabc3,
+	0x204242,
+	0x205983,
+	0x26e543,
+	0x200202,
+	0x2fabc3,
+	0x204242,
+	0x205983,
+	0x26e543,
+	0x200202,
+	0x238543,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x20cb02,
+	0x221483,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x208e83,
+	0x201a03,
+	0x355685,
+	0x21a902,
+	0x207102,
+	0x16fb88,
+	0x1480cc8,
+	0x323043,
+	0x20fec1,
+	0x201641,
+	0x203c01,
+	0x201301,
+	0x267401,
+	0x2ae601,
+	0x211341,
+	0x28a0c1,
+	0x24dfc1,
+	0x2fbf81,
+	0x200141,
+	0x200001,
+	0x131645,
+	0x16fb88,
+	0x2008c1,
+	0x201781,
+	0x200301,
+	0x200081,
+	0x200181,
+	0x200401,
+	0x200041,
+	0x2086c1,
+	0x200101,
+	0x200281,
+	0x200801,
+	0x200981,
+	0x200441,
+	0x204101,
+	0x2227c1,
+	0x200341,
+	0x200741,
+	0x2002c1,
+	0x2000c1,
+	0x203441,
+	0x200201,
+	0x200c81,
+	0x2005c1,
+	0x204541,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x200442,
+	0x201a03,
+	0x36dc7,
+	0x8cbc7,
+	0x24386,
+	0x44f4a,
+	0x906c8,
+	0x5c288,
+	0x5c6c7,
+	0xffc6,
+	0xe1d45,
+	0x11205,
+	0x86286,
+	0x12cf06,
+	0x286644,
+	0x31cf87,
+	0x16fb88,
+	0x2de944,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x323043,
+	0x255783,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x21a902,
+	0x2ba8c3,
+	0x242043,
+	0x2cc103,
+	0x202d42,
+	0x33eb43,
+	0x203ec3,
+	0x20fc03,
+	0x200001,
+	0x2ed0c5,
+	0x203c43,
+	0x226544,
+	0x332083,
+	0x322103,
+	0x222903,
+	0x383283,
+	0xaa38543,
+	0x240244,
+	0x24ac83,
+	0x207583,
+	0x2228c3,
+	0x23aa83,
+	0x23cac3,
+	0x23c803,
+	0x202103,
+	0x2aab03,
+	0x322083,
+	0x2bdec3,
+	0x20df43,
+	0x255684,
+	0x257307,
+	0x2f6802,
+	0x25c003,
+	0x263783,
+	0x27e983,
+	0x20fe03,
+	0x20dec3,
+	0xaf23043,
+	0x209ac3,
+	0x204c03,
+	0x231603,
+	0x34bc85,
+	0x209c83,
+	0x304d43,
+	0xb207a83,
+	0x374803,
+	0x213643,
+	0x229443,
+	0x28cac3,
+	0x22c2c2,
+	0x20c0c3,
+	0x208e83,
+	0x1600e03,
+	0x22b1c3,
+	0x2014c3,
+	0x21a743,
+	0x201a03,
+	0x36ea03,
+	0x223583,
+	0x221483,
+	0x233503,
+	0x30bcc3,
+	0x2fad83,
+	0x317345,
+	0x20c843,
+	0x2df706,
+	0x2fadc3,
+	0x349703,
+	0x2205c4,
+	0x20c9c3,
+	0x386603,
+	0x2f1a03,
+	0x20bdc3,
+	0x21a902,
+	0x22fac3,
+	0x30e403,
+	0x30fac4,
+	0x383884,
+	0x21a5c3,
+	0x16fb88,
+	0x207102,
+	0x200242,
+	0x202d42,
+	0x20cac2,
+	0x201d02,
+	0x201442,
+	0x23de42,
+	0x201842,
+	0x207b02,
+	0x201fc2,
+	0x2281c2,
+	0x214642,
+	0x2745c2,
+	0x20cb42,
+	0x2e6dc2,
+	0x21cc82,
+	0x225b82,
+	0x204102,
+	0x2204c2,
+	0x205842,
+	0x200482,
+	0x221dc2,
+	0x2044c2,
+	0x20d2c2,
+	0x200a02,
+	0x21f542,
+	0x204782,
+	0x7102,
+	0x242,
+	0x2d42,
+	0xcac2,
+	0x1d02,
+	0x1442,
+	0x3de42,
+	0x1842,
+	0x7b02,
+	0x1fc2,
+	0x281c2,
+	0x14642,
+	0x745c2,
+	0xcb42,
+	0xe6dc2,
+	0x1cc82,
+	0x25b82,
+	0x4102,
+	0x204c2,
+	0x5842,
+	0x482,
+	0x21dc2,
+	0x44c2,
+	0xd2c2,
+	0xa02,
+	0x1f542,
+	0x4782,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x2442,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x20f882,
+	0x201a03,
+	0xc638543,
+	0x323043,
+	0x28cac3,
+	0x1a3443,
+	0x219302,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x4542,
+	0x201c02,
+	0x1442b45,
+	0x232282,
+	0x16fb88,
+	0xf882,
+	0x209d82,
+	0x209b02,
+	0x20ddc2,
+	0x2190c2,
+	0x206802,
+	0x11205,
+	0x201282,
+	0x2014c2,
+	0x202c82,
+	0x200dc2,
+	0x21cc82,
+	0x3951c2,
+	0x206742,
+	0x260a42,
+	0x36dc7,
+	0x1501cd,
+	0xe1dc9,
+	0x5900b,
+	0xe5848,
+	0x56809,
+	0x106046,
+	0x323043,
+	0x16fb88,
+	0x145944,
+	0xf183,
+	0x145c05,
+	0x16fb88,
+	0x5d3c6,
+	0x145c49,
+	0x126447,
+	0x207102,
+	0x286644,
+	0x20f882,
+	0x238543,
+	0x201742,
+	0x23cac3,
+	0x207b02,
+	0x2de944,
+	0x255783,
+	0x253442,
+	0x208e83,
+	0x200442,
+	0x201a03,
+	0x3a03c6,
+	0x323d8f,
+	0x7156c3,
+	0x16fb88,
+	0x20f882,
+	0x21b583,
+	0x323043,
+	0x28cac3,
+	0xe03,
+	0x152e1cb,
+	0xe2648,
+	0x14b7aca,
+	0x14f5907,
+	0x8dbcb,
+	0x149785,
+	0x36dc7,
+	0x20f882,
+	0x238543,
+	0x323043,
+	0x208e83,
+	0x207102,
+	0x200b42,
+	0x2092c2,
+	0xfe38543,
+	0x248582,
+	0x23cac3,
+	0x209c42,
+	0x20d382,
+	0x323043,
+	0x210642,
+	0x259c42,
+	0x2aeb02,
+	0x2006c2,
+	0x295e02,
+	0x203102,
+	0x200782,
+	0x2351c2,
+	0x2335c2,
+	0x252e42,
+	0x2b5102,
+	0x2d2942,
+	0x327982,
+	0x2111c2,
+	0x28cac3,
+	0x200802,
+	0x208e83,
+	0x24d382,
+	0x289e82,
+	0x201a03,
+	0x2485c2,
+	0x20d2c2,
+	0x221382,
+	0x200742,
+	0x204d02,
+	0x2e6282,
+	0x22be42,
+	0x231802,
+	0x2312c2,
+	0x3195ca,
+	0x35c50a,
+	0x39090a,
+	0x3c1382,
+	0x208a82,
+	0x212a42,
+	0x10223fc9,
+	0x1072c38a,
+	0x1438547,
+	0x10a02482,
+	0x1416dc3,
+	0x12c2,
+	0x12c38a,
+	0x252044,
+	0x11238543,
+	0x23cac3,
+	0x253384,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x28cac3,
+	0x208e83,
+	0xe3bc5,
+	0x200e03,
+	0x201a03,
+	0x20c843,
+	0x202443,
+	0x16fb88,
+	0x140ff44,
+	0x1441c5,
+	0x12620a,
+	0x11ec42,
+	0x1affc6,
+	0x35ad1,
+	0x11a23fc9,
+	0x144248,
+	0x10b388,
+	0x8cf47,
+	0xbc2,
+	0x13164b,
+	0x1b320a,
+	0x71ca,
+	0x26547,
+	0x16fb88,
+	0x114008,
+	0x14507,
+	0x17c2198b,
+	0x23087,
+	0xc702,
+	0x5b907,
+	0x1920a,
+	0x8cc4f,
+	0x4f70f,
+	0x22902,
+	0xf882,
+	0xaaa48,
+	0xe228a,
+	0x6a08,
+	0x64b88,
+	0xdfbc8,
+	0x4c82,
+	0x42bcf,
+	0xa670b,
+	0xf8d08,
+	0x3e607,
+	0x185b8a,
+	0x3af8b,
+	0x57f89,
+	0x185a87,
+	0x6908,
+	0x1089cc,
+	0x81a87,
+	0x1a800a,
+	0xdd088,
+	0x1aafce,
+	0x2438e,
+	0x2638b,
+	0x27bcb,
+	0x2920b,
+	0x2c049,
+	0x2ff8b,
+	0x31ccd,
+	0x329cb,
+	0x62b4d,
+	0x62ecd,
+	0xfa44a,
+	0x1836cb,
+	0x3b64b,
+	0x47085,
+	0x1802cc10,
+	0x12d40f,
+	0x12db4f,
+	0x37a4d,
+	0xbf490,
+	0xc182,
+	0x18623a08,
+	0x8ca48,
+	0x18af52c5,
+	0x52a0b,
+	0x11f3d0,
+	0x5ad08,
+	0x6b0a,
+	0x27d89,
+	0x6b307,
+	0x6b647,
+	0x6b807,
+	0x6bb87,
+	0x6ca87,
+	0x6d487,
+	0x6ddc7,
+	0x6e187,
+	0x6f187,
+	0x6f487,
+	0x70147,
+	0x70307,
+	0x704c7,
+	0x70687,
+	0x70987,
+	0x70e47,
+	0x71707,
+	0x72007,
+	0x72c87,
+	0x731c7,
+	0x73387,
+	0x73707,
+	0x74487,
+	0x74687,
+	0x750c7,
+	0x75287,
+	0x75447,
+	0x75dc7,
+	0x76087,
+	0x77a47,
+	0x78187,
+	0x78447,
+	0x78bc7,
+	0x78d87,
+	0x79187,
+	0x79687,
+	0x79907,
+	0x79d07,
+	0x79ec7,
+	0x7a087,
+	0x7ae07,
+	0x7c447,
+	0x7c987,
+	0x7cc87,
+	0x7ce47,
+	0x7d1c7,
+	0x7d787,
+	0x13c42,
+	0x64c8a,
+	0xe90c7,
+	0x287c5,
+	0x806d1,
+	0x157c6,
+	0x11318a,
+	0xaa8ca,
+	0x5d3c6,
+	0xb880b,
+	0x17202,
+	0x3a1d1,
+	0x1bbc89,
+	0x9c0c9,
+	0x351c2,
+	0xa808a,
+	0xac7c9,
+	0xacf0f,
+	0xada4e,
+	0xae208,
+	0x206c2,
+	0xb649,
+	0x1025ce,
+	0xe8b4c,
+	0xf328f,
+	0x1a5b4e,
+	0x1684c,
+	0x18009,
+	0x1c291,
+	0x1f108,
+	0x2ac92,
+	0x2bb4d,
+	0x33c4d,
+	0x15208b,
+	0x41cd5,
+	0x164ec9,
+	0xfcf8a,
+	0x40809,
+	0x4d650,
+	0x4e70b,
+	0x5898f,
+	0x6390b,
+	0x7298c,
+	0x77650,
+	0x8430a,
+	0x853cd,
+	0x894ce,
+	0x8ef4a,
+	0xede0c,
+	0x176a54,
+	0x1bb911,
+	0x95a8b,
+	0x97fcf,
+	0xa290d,
+	0xa76ce,
+	0xb2bcc,
+	0xb330c,
+	0x160b0b,
+	0x160e0e,
+	0xd6750,
+	0x11868b,
+	0x1876cd,
+	0x1bce4f,
+	0xba0cc,
+	0xbb0ce,
+	0xbc011,
+	0xc7c4c,
+	0xc9307,
+	0xc9c0d,
+	0x130d4c,
+	0x1605d0,
+	0x174c0d,
+	0xd1b47,
+	0xd7c10,
+	0xdd6c8,
+	0xf178b,
+	0x134c4f,
+	0x3ef48,
+	0x11338d,
+	0x15c750,
+	0x172e49,
+	0x18e086c6,
+	0xb8243,
+	0xbc445,
+	0x9a02,
+	0x143889,
+	0x5e04a,
+	0x10fb06,
+	0x2594a,
+	0x1900c949,
+	0x1c003,
+	0xdebd1,
+	0xdf009,
+	0xe0407,
+	0x35c4b,
+	0xe67d0,
+	0xe6c8c,
+	0xe8e48,
+	0xe9805,
+	0xb988,
+	0x1ad4ca,
+	0x1c0c7,
+	0x16bac7,
+	0x982,
+	0x12bcca,
+	0x12e7c9,
+	0x79545,
+	0x402ca,
+	0x9260f,
+	0x4b8cb,
+	0x14bd4c,
+	0x17a492,
+	0x94e45,
+	0xec1c8,
+	0x17618a,
+	0x196f3d05,
+	0x190ecc,
+	0x129ac3,
+	0x1951c2,
+	0xfb30a,
+	0x14fb70c,
+	0x14f508,
+	0x62d08,
+	0x36d47,
+	0xb282,
+	0x4242,
+	0x47590,
+	0xa02,
+	0x3904f,
+	0x86286,
+	0x7c0e,
+	0xebbcb,
+	0x8f148,
+	0xda049,
+	0x18f052,
+	0x95cd,
+	0x586c8,
+	0x58ec9,
+	0x5d50d,
+	0x5e4c9,
+	0x5e88b,
+	0x60648,
+	0x65808,
+	0x65b88,
+	0x65e49,
+	0x6604a,
+	0x6a98c,
+	0xeb04a,
+	0x10bd07,
+	0x1f54d,
+	0xfde8b,
+	0x12004c,
+	0x404c8,
+	0x4f049,
+	0x1b01d0,
+	0xc2,
+	0x2d3cd,
+	0x2642,
+	0x2cc2,
+	0x10bc4a,
+	0x11308a,
+	0x11438b,
+	0x3b80c,
+	0x113b0a,
+	0x113d8e,
+	0xf2cd,
+	0x11d708,
+	0x4542,
+	0x11f46c0e,
+	0x1260ee4e,
+	0x12f43f8a,
+	0x1373a14e,
+	0x13f9d38e,
+	0x1460138c,
+	0x1438547,
+	0x1438549,
+	0x1416dc3,
+	0x14e3700c,
+	0x15707789,
+	0x15f3b509,
+	0x12c2,
+	0x146b51,
+	0xed91,
+	0x143ecd,
+	0x13a091,
+	0x19d2d1,
+	0x12cf,
+	0x36f4f,
+	0x1076cc,
+	0x13b44c,
+	0x18954d,
+	0x1b5295,
+	0x10ed8c,
+	0xea88c,
+	0x122ed0,
+	0x158fcc,
+	0x16d9cc,
+	0x191819,
+	0x1a83d9,
+	0x1aa459,
+	0x1b3e94,
+	0x1b8ad4,
+	0x1c0d14,
+	0x2394,
+	0x3754,
+	0x1670ee49,
+	0x16dc0fc9,
+	0x176ea949,
+	0x1221f309,
+	0x12c2,
+	0x12a1f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x1321f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x13a1f309,
+	0x12c2,
+	0x1421f309,
+	0x12c2,
+	0x14a1f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x1521f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x15a1f309,
+	0x12c2,
+	0x1621f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x16a1f309,
+	0x12c2,
+	0x1721f309,
+	0x12c2,
+	0x17a1f309,
+	0x12c2,
+	0x238a,
+	0x12c2,
+	0x35ac5,
+	0x1b3204,
+	0x146c0e,
+	0xee4e,
+	0x143f8a,
+	0x13a14e,
+	0x19d38e,
+	0x138c,
+	0x3700c,
+	0x107789,
+	0x13b509,
+	0x10ee49,
+	0x1c0fc9,
+	0xea949,
+	0x122f8d,
+	0x2649,
+	0x3a09,
+	0x5bf04,
+	0x11d8c4,
+	0x126144,
+	0x15f784,
+	0x8de84,
+	0x4b744,
+	0x6e44,
+	0x67344,
+	0x8cf44,
+	0x157e2c3,
+	0xc182,
+	0xf2c3,
+	0x4c82,
+	0x207102,
+	0x20f882,
+	0x201742,
+	0x207602,
+	0x207b02,
+	0x200442,
+	0x204242,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231603,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x208e83,
+	0x201a03,
+	0x160c3,
+	0x323043,
+	0x31604,
+	0x207102,
+	0x39c783,
+	0x1b638543,
+	0x2bf347,
+	0x323043,
+	0x211a83,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x243d0a,
+	0x3a03c5,
+	0x221483,
+	0x205082,
+	0x16fb88,
+	0x16fb88,
+	0xf882,
+	0x127482,
+	0x1bf51b0b,
+	0x5ba45,
+	0x35dc5,
+	0x114b46,
+	0x145944,
+	0xf183,
+	0x145c05,
+	0x131645,
+	0x16fb88,
+	0x23087,
+	0x38543,
+	0x1c644d87,
+	0x1432c6,
+	0x1c93b345,
+	0x143387,
+	0x1b4d0a,
+	0x1b4bc8,
+	0x11887,
+	0x6df88,
+	0x99707,
+	0x152cf,
+	0x435c7,
+	0x150d86,
+	0x11f3d0,
+	0x12a58f,
+	0x20a89,
+	0x10fb84,
+	0x1cd4344e,
+	0xb098c,
+	0x5810a,
+	0xa7987,
+	0x3520a,
+	0xbb49,
+	0xb514c,
+	0x4304a,
+	0x5ec8a,
+	0x145c49,
+	0x10fb06,
+	0xa7a4a,
+	0xe8a,
+	0xa4e49,
+	0xde488,
+	0xde786,
+	0xe284d,
+	0xbc8c5,
+	0x126447,
+	0x1019c9,
+	0xf72c7,
+	0xb5ed4,
+	0x103acb,
+	0xf8b4a,
+	0xab10d,
+	0xd3c3,
+	0xd3c3,
+	0x24386,
+	0xd3c3,
+	0x19c783,
+	0x16fb88,
+	0xf882,
+	0x53384,
+	0x5f843,
+	0x155685,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x203ec3,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x29c283,
+	0x202443,
+	0x203ec3,
+	0x286644,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x206683,
+	0x238543,
+	0x23cac3,
+	0x207603,
+	0x21b583,
+	0x323043,
+	0x231604,
+	0x3797c3,
+	0x229443,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0x36a883,
+	0x1ea38543,
+	0x23cac3,
+	0x250ac3,
+	0x323043,
+	0x212143,
+	0x229443,
+	0x201a03,
+	0x204103,
+	0x35f584,
+	0x16fb88,
+	0x1f238543,
+	0x23cac3,
+	0x2ae2c3,
+	0x323043,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x20e943,
+	0x16fb88,
+	0x1fa38543,
+	0x23cac3,
+	0x21b583,
+	0x200e03,
+	0x201a03,
+	0x16fb88,
+	0x1438547,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x131645,
+	0x36dc7,
+	0xb610b,
+	0xdf404,
+	0xbc8c5,
+	0x1480cc8,
+	0xae90d,
+	0x20e6c505,
+	0x7bd44,
+	0x10c3,
+	0x172d45,
+	0x33b145,
+	0x16fb88,
+	0xd3c2,
+	0x2bc3,
+	0xf9306,
+	0x31f948,
+	0x3347c7,
+	0x286644,
+	0x39c286,
+	0x3b5146,
+	0x16fb88,
+	0x2ddac3,
+	0x342a49,
+	0x26d615,
+	0x6d61f,
+	0x238543,
+	0x3b3a52,
+	0xf6306,
+	0x114dc5,
+	0x6b0a,
+	0x27d89,
+	0x3b380f,
+	0x2de944,
+	0x3490c5,
+	0x304b10,
+	0x34e347,
+	0x200e03,
+	0x293408,
+	0x12ce46,
+	0x29630a,
+	0x230f04,
+	0x2f3743,
+	0x3a03c6,
+	0x205082,
+	0x22facb,
+	0xe03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x2f9a03,
+	0x20f882,
+	0x6ed43,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x211a83,
+	0x228243,
+	0x201a03,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x207102,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x35dc5,
+	0x286644,
+	0x238543,
+	0x23cac3,
+	0x20f644,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x204c03,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x210543,
+	0x707c3,
+	0x11a83,
+	0x208e83,
+	0x201a03,
+	0x3195ca,
+	0x335289,
+	0x35438b,
+	0x35490a,
+	0x35c50a,
+	0x369bcb,
+	0x38274a,
+	0x38b38a,
+	0x39090a,
+	0x390b8b,
+	0x3ad209,
+	0x3af10a,
+	0x3af7cb,
+	0x3b978b,
+	0x3bfb4a,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x35dcb,
+	0x651c8,
+	0x1174c9,
+	0x16fb88,
+	0x238543,
+	0x26b304,
+	0x20b342,
+	0x21bf84,
+	0x346145,
+	0x203ec3,
+	0x286644,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x253384,
+	0x2de944,
+	0x231604,
+	0x229443,
+	0x208e83,
+	0x201a03,
+	0x22d585,
+	0x206683,
+	0x221483,
+	0x20ec43,
+	0x231944,
+	0x20fe84,
+	0x2cc105,
+	0x16fb88,
+	0x30dc84,
+	0x36bdc6,
+	0x281384,
+	0x20f882,
+	0x381107,
+	0x254d87,
+	0x251844,
+	0x260105,
+	0x374e05,
+	0x2b13c5,
+	0x231604,
+	0x2cf6c8,
+	0x23eb46,
+	0x3bffc8,
+	0x257cc5,
+	0x2e4505,
+	0x263544,
+	0x201a03,
+	0x2f4544,
+	0x368dc6,
+	0x3a04c3,
+	0x231944,
+	0x280bc5,
+	0x2e4ac4,
+	0x34da44,
+	0x205082,
+	0x2669c6,
+	0x3a2906,
+	0x30a185,
+	0x207102,
+	0x39c783,
+	0x2760f882,
+	0x223b84,
+	0x207b02,
+	0x28cac3,
+	0x200e82,
+	0x208e83,
+	0x200442,
+	0x215443,
+	0x202443,
+	0x16fb88,
+	0x16fb88,
+	0x323043,
+	0x207102,
+	0x2820f882,
+	0x323043,
+	0x270443,
+	0x3797c3,
+	0x32e5c4,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x207102,
+	0x28a0f882,
+	0x238543,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x482,
+	0x208882,
+	0x21a902,
+	0x211a83,
+	0x2ef783,
+	0x207102,
+	0x131645,
+	0x16fb88,
+	0x36dc7,
+	0x20f882,
+	0x23cac3,
+	0x253384,
+	0x2020c3,
+	0x323043,
+	0x204c03,
+	0x28cac3,
+	0x208e83,
+	0x21eb43,
+	0x201a03,
+	0x2252c3,
+	0x122213,
+	0x124cd4,
+	0x36dc7,
+	0x139986,
+	0x5e24b,
+	0x24386,
+	0x5c0c7,
+	0x120589,
+	0xe838a,
+	0x9058d,
+	0x14fecc,
+	0x3954a,
+	0x11205,
+	0x1b4d48,
+	0x86286,
+	0x31586,
+	0x12cf06,
+	0x20c182,
+	0x10b14c,
+	0x1b33c7,
+	0x2a691,
+	0x238543,
+	0x6df05,
+	0x7588,
+	0x18ec4,
+	0x29cbe1c6,
+	0x806c6,
+	0xb9a06,
+	0x960ca,
+	0xb4003,
+	0x2a24c984,
+	0xe8345,
+	0x18e43,
+	0x2a63dc47,
+	0xe3bc5,
+	0xb88cc,
+	0xf7a88,
+	0xbd248,
+	0xa6589,
+	0x14dc08,
+	0x1425886,
+	0x2ab71549,
+	0x14978a,
+	0x16308,
+	0x114b48,
+	0x8cf44,
+	0xb5ac5,
+	0x2ae42bc3,
+	0x2b332106,
+	0x2b6f4dc4,
+	0x2bb39d87,
+	0x114b44,
+	0x114b44,
+	0x114b44,
+	0x114b44,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x207102,
+	0x20f882,
+	0x323043,
+	0x205e82,
+	0x208e83,
+	0x201a03,
+	0x215443,
+	0x373ccf,
+	0x37408e,
+	0x16fb88,
+	0x238543,
+	0x4db87,
+	0x23cac3,
+	0x323043,
+	0x255783,
+	0x208e83,
+	0x201a03,
+	0x20d4c3,
+	0x20d4c7,
+	0x200142,
+	0x2ce609,
+	0x200242,
+	0x24788b,
+	0x2c110a,
+	0x2c67c9,
+	0x201242,
+	0x2100c6,
+	0x26cd95,
+	0x2479d5,
+	0x275793,
+	0x247f53,
+	0x201d42,
+	0x212c45,
+	0x31d44c,
+	0x27c6cb,
+	0x29c705,
+	0x20cac2,
+	0x28e142,
+	0x384c06,
+	0x200bc2,
+	0x3acc46,
+	0x2dd20d,
+	0x26540c,
+	0x22cc84,
+	0x200f82,
+	0x203402,
+	0x22b048,
+	0x201d02,
+	0x20a746,
+	0x28bf04,
+	0x26cf55,
+	0x275913,
+	0x216d03,
+	0x33844a,
+	0x205407,
+	0x3145c9,
+	0x38d4c7,
+	0x20d342,
+	0x200002,
+	0x3ba886,
+	0x212702,
+	0x16fb88,
+	0x216b42,
+	0x201102,
+	0x27f847,
+	0x217387,
+	0x222d85,
+	0x20c702,
+	0x225287,
+	0x225448,
+	0x2024c2,
+	0x2430c2,
+	0x237302,
+	0x201382,
+	0x242688,
+	0x20a043,
+	0x25fa08,
+	0x2e9b0d,
+	0x2322c3,
+	0x32ec08,
+	0x245f4f,
+	0x24630e,
+	0x339a4a,
+	0x22e811,
+	0x22ec90,
+	0x2c34cd,
+	0x2c380c,
+	0x36a707,
+	0x3385c7,
+	0x39c349,
+	0x20d302,
+	0x201442,
+	0x25db0c,
+	0x25de0b,
+	0x2008c2,
+	0x360cc6,
+	0x20e982,
+	0x204882,
+	0x222902,
+	0x20f882,
+	0x3b69c4,
+	0x244387,
+	0x229682,
+	0x24a347,
+	0x24b547,
+	0x20d282,
+	0x20c8c2,
+	0x24da45,
+	0x21a442,
+	0x2f290e,
+	0x2ab3cd,
+	0x23cac3,
+	0x28d58e,
+	0x2c5c0d,
+	0x25ac43,
+	0x201482,
+	0x2891c4,
+	0x216582,
+	0x20fac2,
+	0x364145,
+	0x373587,
+	0x393202,
+	0x207602,
+	0x252f87,
+	0x255ac8,
+	0x2f6802,
+	0x294ec6,
+	0x25d98c,
+	0x25dccb,
+	0x206b02,
+	0x26764f,
+	0x267a10,
+	0x267e0f,
+	0x2681d5,
+	0x268714,
+	0x268c0e,
+	0x268f8e,
+	0x26930f,
+	0x2696ce,
+	0x269a54,
+	0x269f53,
+	0x26a40d,
+	0x27d949,
+	0x291ac3,
+	0x201802,
+	0x2b7505,
+	0x206346,
+	0x207b02,
+	0x3a4ec7,
+	0x323043,
+	0x217202,
+	0x37e548,
+	0x22ea51,
+	0x22ee90,
+	0x2007c2,
+	0x290e07,
+	0x204182,
+	0x332b07,
+	0x209a02,
+	0x342089,
+	0x384bc7,
+	0x27ac08,
+	0x2be006,
+	0x2ef683,
+	0x339205,
+	0x2022c2,
+	0x207a82,
+	0x3bac85,
+	0x391345,
+	0x204bc2,
+	0x231043,
+	0x2e4b47,
+	0x205747,
+	0x200502,
+	0x25f1c4,
+	0x211b83,
+	0x211b89,
+	0x215148,
+	0x200282,
+	0x202942,
+	0x242387,
+	0x263285,
+	0x2ad208,
+	0x215c87,
+	0x21a243,
+	0x294c86,
+	0x2c334d,
+	0x2c36cc,
+	0x2c8346,
+	0x209b02,
+	0x20c202,
+	0x204a82,
+	0x245dcf,
+	0x2461ce,
+	0x374e87,
+	0x20b302,
+	0x2c72c5,
+	0x2c72c6,
+	0x214702,
+	0x200802,
+	0x228246,
+	0x2b57c3,
+	0x332a46,
+	0x2d0285,
+	0x2d028d,
+	0x2d0855,
+	0x2d108c,
+	0x2d1e4d,
+	0x2d2212,
+	0x214642,
+	0x2745c2,
+	0x202ec2,
+	0x249386,
+	0x302486,
+	0x200982,
+	0x2063c6,
+	0x202c82,
+	0x39b505,
+	0x200542,
+	0x2ab4c9,
+	0x2e324c,
+	0x2e358b,
+	0x200442,
+	0x257708,
+	0x2052c2,
+	0x20cb42,
+	0x278ec6,
+	0x21f285,
+	0x36c107,
+	0x24bc85,
+	0x28ea05,
+	0x235d82,
+	0x219a42,
+	0x21cc82,
+	0x2f3587,
+	0x2613cd,
+	0x26174c,
+	0x317947,
+	0x2235c2,
+	0x225b82,
+	0x23f688,
+	0x343a08,
+	0x34c008,
+	0x313344,
+	0x361087,
+	0x2efc43,
+	0x299842,
+	0x206682,
+	0x2f2149,
+	0x3ab3c7,
+	0x204102,
+	0x2792c5,
+	0x22fa42,
+	0x236902,
+	0x35dc83,
+	0x35dc86,
+	0x2f9a02,
+	0x2fab42,
+	0x200c02,
+	0x281e06,
+	0x345607,
+	0x221282,
+	0x206b42,
+	0x25f84f,
+	0x28d3cd,
+	0x3029ce,
+	0x2c5a8c,
+	0x201a42,
+	0x204142,
+	0x2bde45,
+	0x317e46,
+	0x209002,
+	0x205842,
+	0x200482,
+	0x215c04,
+	0x2e9984,
+	0x2b8706,
+	0x204242,
+	0x37d6c7,
+	0x233803,
+	0x233808,
+	0x33cb48,
+	0x240687,
+	0x249286,
+	0x202502,
+	0x242603,
+	0x351107,
+	0x26ffc6,
+	0x2e2d05,
+	0x3136c8,
+	0x206182,
+	0x337547,
+	0x21f542,
+	0x332182,
+	0x207f02,
+	0x2e95c9,
+	0x23b442,
+	0x2018c2,
+	0x248383,
+	0x377787,
+	0x2002c2,
+	0x2e33cc,
+	0x2e36cb,
+	0x2c83c6,
+	0x218d85,
+	0x22a202,
+	0x204782,
+	0x2c1486,
+	0x237e83,
+	0x378407,
+	0x243cc2,
+	0x200d42,
+	0x26cc15,
+	0x247b95,
+	0x275653,
+	0x2480d3,
+	0x2955c7,
+	0x2c0ec8,
+	0x379d90,
+	0x3c020f,
+	0x2c0ed3,
+	0x2c6592,
+	0x2ce1d0,
+	0x2db58f,
+	0x2dc512,
+	0x2dffd1,
+	0x2e0cd3,
+	0x2e9392,
+	0x2ea0cf,
+	0x2f7c4e,
+	0x2f9a92,
+	0x2faed1,
+	0x303e4f,
+	0x347a4e,
+	0x3559d1,
+	0x2fee10,
+	0x32f912,
+	0x36fd51,
+	0x3af4c6,
+	0x30dd47,
+	0x382ac7,
+	0x203702,
+	0x286d05,
+	0x304887,
+	0x21a902,
+	0x218f42,
+	0x230d85,
+	0x226c43,
+	0x244c06,
+	0x26158d,
+	0x2618cc,
+	0x206442,
+	0x31d2cb,
+	0x27c58a,
+	0x212b0a,
+	0x2c04c9,
+	0x2f0c0b,
+	0x215dcd,
+	0x304f8c,
+	0x2f574a,
+	0x277bcc,
+	0x27d34b,
+	0x29c54c,
+	0x2b4c0b,
+	0x2e31c3,
+	0x36f946,
+	0x3061c2,
+	0x2fd502,
+	0x256d03,
+	0x203642,
+	0x203643,
+	0x260b86,
+	0x268387,
+	0x2c48c6,
+	0x2e2448,
+	0x343708,
+	0x2cc7c6,
+	0x20c402,
+	0x309b4d,
+	0x309e8c,
+	0x2dea07,
+	0x30db47,
+	0x2302c2,
+	0x221682,
+	0x260982,
+	0x255e82,
+	0x20f882,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x215443,
+	0x207102,
+	0x207542,
+	0x2da97d45,
+	0x2de97685,
+	0x2e320c86,
+	0x16fb88,
+	0x2e6b68c5,
+	0x20f882,
+	0x201742,
+	0x2ea34cc5,
+	0x2ee852c5,
+	0x2f285e07,
+	0x2f6f6e09,
+	0x2fa74084,
+	0x207b02,
+	0x217202,
+	0x2fe56a05,
+	0x302977c9,
+	0x30785908,
+	0x30ab3185,
+	0x30f3f5c7,
+	0x31227248,
+	0x316ec085,
+	0x31a00106,
+	0x31e41489,
+	0x323311c8,
+	0x326c8988,
+	0x32a9ef0a,
+	0x32e7e204,
+	0x332d99c5,
+	0x336c30c8,
+	0x33b85d85,
+	0x21a602,
+	0x33e11103,
+	0x342aa246,
+	0x3475d1c8,
+	0x34a8ab86,
+	0x34e8a688,
+	0x35348206,
+	0x356e2dc4,
+	0x204d42,
+	0x35addc87,
+	0x35eaf444,
+	0x36280087,
+	0x367b0c87,
+	0x200442,
+	0x36aa3885,
+	0x36e8f904,
+	0x372f1447,
+	0x37632c47,
+	0x37a89006,
+	0x37e38385,
+	0x3829d7c7,
+	0x386d5dc8,
+	0x38ab7887,
+	0x38ea6c89,
+	0x3939e345,
+	0x397778c7,
+	0x39a974c6,
+	0x39e102c8,
+	0x3279cd,
+	0x27a209,
+	0x28384b,
+	0x289ecb,
+	0x2ae3cb,
+	0x2e62cb,
+	0x31804b,
+	0x31830b,
+	0x318949,
+	0x31984b,
+	0x319b0b,
+	0x31a08b,
+	0x31b08a,
+	0x31b5ca,
+	0x31bbcc,
+	0x31e00b,
+	0x31ea4a,
+	0x33064a,
+	0x33c6ce,
+	0x33d1ce,
+	0x33d54a,
+	0x33efca,
+	0x33fa8b,
+	0x33fd4b,
+	0x340b0b,
+	0x36124b,
+	0x36184a,
+	0x36250b,
+	0x3627ca,
+	0x362a4a,
+	0x362cca,
+	0x38424b,
+	0x38c6cb,
+	0x38e64e,
+	0x38e9cb,
+	0x39464b,
+	0x395b0b,
+	0x39900a,
+	0x399289,
+	0x3994ca,
+	0x39a94a,
+	0x3addcb,
+	0x3afa8b,
+	0x3b05ca,
+	0x3b1fcb,
+	0x3b674b,
+	0x3bf58b,
+	0x3a287a88,
+	0x3a68fd09,
+	0x3aaa6409,
+	0x3aee4d48,
+	0x34b945,
+	0x202d43,
+	0x21b744,
+	0x345805,
+	0x273dc6,
+	0x274805,
+	0x28f584,
+	0x3a4dc8,
+	0x312ec5,
+	0x299a84,
+	0x211587,
+	0x2a550a,
+	0x3813ca,
+	0x308f07,
+	0x202c47,
+	0x303647,
+	0x271907,
+	0x2ff9c5,
+	0x204906,
+	0x22b9c7,
+	0x2c8684,
+	0x2db006,
+	0x2daf06,
+	0x208185,
+	0x331c04,
+	0x388bc6,
+	0x2a4707,
+	0x232646,
+	0x2bfa07,
+	0x232dc3,
+	0x26c7c6,
+	0x23cf85,
+	0x285f07,
+	0x27100a,
+	0x284e04,
+	0x220808,
+	0x2a2009,
+	0x2d0e47,
+	0x31e8c6,
+	0x257988,
+	0x28b2c9,
+	0x314784,
+	0x376004,
+	0x35d785,
+	0x22b6c8,
+	0x2ccc07,
+	0x29a3c9,
+	0x3af5c8,
+	0x353706,
+	0x24d486,
+	0x29fd88,
+	0x365bc6,
+	0x297685,
+	0x2890c6,
+	0x280ec8,
+	0x256286,
+	0x25cb8b,
+	0x2ac646,
+	0x2a224d,
+	0x208605,
+	0x2af306,
+	0x218a05,
+	0x35d949,
+	0x27a787,
+	0x36d148,
+	0x2969c6,
+	0x2a1509,
+	0x341046,
+	0x270f85,
+	0x2a7f06,
+	0x2d3586,
+	0x2d3b09,
+	0x333f06,
+	0x3529c7,
+	0x248c85,
+	0x201d83,
+	0x25cd05,
+	0x2a2507,
+	0x338d06,
+	0x208509,
+	0x320c86,
+	0x289306,
+	0x219fc9,
+	0x288ac9,
+	0x2a8747,
+	0x20cd08,
+	0x280509,
+	0x286988,
+	0x38b5c6,
+	0x2de245,
+	0x23fa4a,
+	0x289386,
+	0x2bf1c6,
+	0x2d7605,
+	0x272408,
+	0x2220c7,
+	0x239fca,
+	0x253b46,
+	0x27a645,
+	0x20a506,
+	0x236b47,
+	0x31e787,
+	0x24fc45,
+	0x271145,
+	0x2e79c6,
+	0x2fbfc6,
+	0x2be306,
+	0x2bb884,
+	0x287e09,
+	0x290bc6,
+	0x2d430a,
+	0x222b88,
+	0x3059c8,
+	0x3813ca,
+	0x205b45,
+	0x2a4645,
+	0x3575c8,
+	0x2b0fc8,
+	0x2b43c7,
+	0x295946,
+	0x329608,
+	0x30a447,
+	0x287088,
+	0x2bbec6,
+	0x289b88,
+	0x29cd06,
+	0x257e47,
+	0x2a27c6,
+	0x388bc6,
+	0x383d4a,
+	0x345506,
+	0x2de249,
+	0x36b086,
+	0x2b6c0a,
+	0x2e2dc9,
+	0x2fe406,
+	0x2bccc4,
+	0x2b75cd,
+	0x28ff87,
+	0x32df46,
+	0x2c8845,
+	0x3410c5,
+	0x204dc6,
+	0x2d4fc9,
+	0x3879c7,
+	0x2826c6,
+	0x2bd406,
+	0x28f609,
+	0x33f784,
+	0x3a1184,
+	0x39c0c8,
+	0x260f46,
+	0x279388,
+	0x30fec8,
+	0x378187,
+	0x3beb49,
+	0x2be507,
+	0x2b678a,
+	0x2fc88f,
+	0x25100a,
+	0x2bdc45,
+	0x281105,
+	0x220085,
+	0x28be47,
+	0x236703,
+	0x20cf08,
+	0x201e46,
+	0x201f49,
+	0x2e4806,
+	0x3a3607,
+	0x2a12c9,
+	0x36d048,
+	0x2d76c7,
+	0x315603,
+	0x34b9c5,
+	0x236685,
+	0x2bb6cb,
+	0x385e44,
+	0x30ad44,
+	0x27f006,
+	0x315e87,
+	0x392a4a,
+	0x251a87,
+	0x36a947,
+	0x2852c5,
+	0x2016c5,
+	0x253689,
+	0x388bc6,
+	0x25190d,
+	0x334145,
+	0x2a10c3,
+	0x200dc3,
+	0x39cf05,
+	0x3534c5,
+	0x257988,
+	0x283007,
+	0x3a0f06,
+	0x2a6086,
+	0x232545,
+	0x23cd87,
+	0x377c87,
+	0x23ea07,
+	0x2d9a4a,
+	0x26c888,
+	0x2bb884,
+	0x256007,
+	0x284707,
+	0x352846,
+	0x26f5c7,
+	0x2ece48,
+	0x2e8548,
+	0x276346,
+	0x374f88,
+	0x2d1704,
+	0x22b9c6,
+	0x239b86,
+	0x333b86,
+	0x2d0006,
+	0x233ac4,
+	0x2719c6,
+	0x2c7146,
+	0x29f406,
+	0x2381c6,
+	0x213ec6,
+	0x223f06,
+	0x3a0e08,
+	0x3bcc88,
+	0x2da288,
+	0x274a08,
+	0x357546,
+	0x217e05,
+	0x2dd4c6,
+	0x2b3205,
+	0x397f07,
+	0x27df05,
+	0x21ae83,
+	0x2058c5,
+	0x34cc44,
+	0x214005,
+	0x22dc83,
+	0x33d807,
+	0x374a48,
+	0x2bfac6,
+	0x2b0c4d,
+	0x2810c6,
+	0x29e985,
+	0x227603,
+	0x2c2a89,
+	0x33f906,
+	0x29dd86,
+	0x2a8004,
+	0x250f87,
+	0x334546,
+	0x387c85,
+	0x20b2c3,
+	0x209484,
+	0x2848c6,
+	0x204a04,
+	0x239c88,
+	0x2005c9,
+	0x325f49,
+	0x2a7e0a,
+	0x2a918d,
+	0x20abc7,
+	0x2bf046,
+	0x205ec4,
+	0x2f6e09,
+	0x28e688,
+	0x28fb86,
+	0x245246,
+	0x26f5c7,
+	0x2b9786,
+	0x22c986,
+	0x36aac6,
+	0x3b0d0a,
+	0x227248,
+	0x364dc5,
+	0x26fa09,
+	0x28758a,
+	0x2f1e88,
+	0x2a40c8,
+	0x29dd08,
+	0x2ad74c,
+	0x318585,
+	0x2a6308,
+	0x2e7546,
+	0x36d2c6,
+	0x3a34c7,
+	0x251985,
+	0x289245,
+	0x325e09,
+	0x219847,
+	0x201f05,
+	0x22d887,
+	0x200dc3,
+	0x2cd145,
+	0x214308,
+	0x25d087,
+	0x2a3f89,
+	0x2dac05,
+	0x395a04,
+	0x2a8e48,
+	0x2dddc7,
+	0x2d7888,
+	0x2508c8,
+	0x2d6645,
+	0x281906,
+	0x2a6186,
+	0x277449,
+	0x2b26c7,
+	0x2b3ac6,
+	0x2236c7,
+	0x20e743,
+	0x274084,
+	0x2d1805,
+	0x23cec4,
+	0x393244,
+	0x288547,
+	0x25b347,
+	0x234284,
+	0x2a3dd0,
+	0x234e47,
+	0x2016c5,
+	0x37178c,
+	0x250684,
+	0x2a9e48,
+	0x257d49,
+	0x36e646,
+	0x34dd48,
+	0x223384,
+	0x37d0c8,
+	0x23a5c6,
+	0x238048,
+	0x2a4cc6,
+	0x2cc8cb,
+	0x201d85,
+	0x2d1688,
+	0x200a04,
+	0x200a0a,
+	0x2a3f89,
+	0x357f06,
+	0x220148,
+	0x263805,
+	0x2b9044,
+	0x2a9d46,
+	0x23e8c8,
+	0x287a88,
+	0x329e86,
+	0x358b04,
+	0x23f9c6,
+	0x2be587,
+	0x27ff87,
+	0x26f5cf,
+	0x204187,
+	0x2fe4c7,
+	0x23d2c5,
+	0x35fcc5,
+	0x2a8409,
+	0x2ed806,
+	0x286045,
+	0x288dc7,
+	0x2c6188,
+	0x29f505,
+	0x2a27c6,
+	0x2229c8,
+	0x28ab8a,
+	0x39c888,
+	0x292f47,
+	0x2fccc6,
+	0x26f9c6,
+	0x20ca43,
+	0x2052c3,
+	0x287749,
+	0x280389,
+	0x2a6b86,
+	0x2dac05,
+	0x304588,
+	0x220148,
+	0x365d48,
+	0x36ab4b,
+	0x2b0e87,
+	0x315849,
+	0x26f848,
+	0x356284,
+	0x3886c8,
+	0x295089,
+	0x2b3dc5,
+	0x28bd47,
+	0x274105,
+	0x287988,
+	0x297bcb,
+	0x29d510,
+	0x2aec45,
+	0x21e20c,
+	0x3a10c5,
+	0x285343,
+	0x296706,
+	0x2c5a04,
+	0x28fa06,
+	0x2a4707,
+	0x222a44,
+	0x24c3c8,
+	0x20cdcd,
+	0x330a05,
+	0x20ac04,
+	0x241b84,
+	0x27bd89,
+	0x292bc8,
+	0x320b07,
+	0x23a648,
+	0x287ec8,
+	0x2829c5,
+	0x28c647,
+	0x282947,
+	0x342807,
+	0x271149,
+	0x223c49,
+	0x36c986,
+	0x2c3a06,
+	0x26f806,
+	0x33e9c5,
+	0x3b4944,
+	0x200006,
+	0x200386,
+	0x282a08,
+	0x23680b,
+	0x284cc7,
+	0x205ec4,
+	0x334486,
+	0x2ed187,
+	0x388f45,
+	0x210bc5,
+	0x21b484,
+	0x223bc6,
+	0x200088,
+	0x2f6e09,
+	0x259706,
+	0x28df88,
+	0x387d46,
+	0x355088,
+	0x2d6c8c,
+	0x282886,
+	0x29e64d,
+	0x29eacb,
+	0x352a85,
+	0x377dc7,
+	0x334006,
+	0x31e648,
+	0x36ca09,
+	0x276608,
+	0x2016c5,
+	0x2076c7,
+	0x286a88,
+	0x332489,
+	0x2a0986,
+	0x25960a,
+	0x31e3c8,
+	0x27644b,
+	0x2d964c,
+	0x37d1c8,
+	0x283e46,
+	0x28c048,
+	0x28a807,
+	0x2e4909,
+	0x2976cd,
+	0x2a26c6,
+	0x365308,
+	0x3bcb49,
+	0x2c4a48,
+	0x289c88,
+	0x2c798c,
+	0x2c8e87,
+	0x2c96c7,
+	0x270f85,
+	0x31a807,
+	0x2c6048,
+	0x2a9dc6,
+	0x26020c,
+	0x2f60c8,
+	0x2d5708,
+	0x262246,
+	0x236407,
+	0x36cb84,
+	0x274a08,
+	0x28d88c,
+	0x22834c,
+	0x2bdcc5,
+	0x2b85c7,
+	0x358a86,
+	0x236386,
+	0x35db08,
+	0x202b84,
+	0x23264b,
+	0x37d80b,
+	0x2fccc6,
+	0x20cc47,
+	0x339305,
+	0x278585,
+	0x232786,
+	0x2637c5,
+	0x385e05,
+	0x2e40c7,
+	0x27f609,
+	0x2fc184,
+	0x2feac5,
+	0x2ead45,
+	0x2b5448,
+	0x235685,
+	0x2c0b89,
+	0x2b16c7,
+	0x2b16cb,
+	0x261ac6,
+	0x3a0b49,
+	0x331b48,
+	0x272885,
+	0x342908,
+	0x223c88,
+	0x249b07,
+	0x383b47,
+	0x2885c9,
+	0x237f87,
+	0x27de09,
+	0x29b88c,
+	0x2a6b88,
+	0x331009,
+	0x360987,
+	0x287f89,
+	0x25b487,
+	0x2d9748,
+	0x3bed05,
+	0x22b946,
+	0x2c8888,
+	0x30cf08,
+	0x287449,
+	0x385e47,
+	0x278645,
+	0x21f949,
+	0x345306,
+	0x2440c4,
+	0x2440c6,
+	0x35d048,
+	0x254547,
+	0x236a08,
+	0x375049,
+	0x3b1a07,
+	0x2a56c6,
+	0x377e84,
+	0x205949,
+	0x28c4c8,
+	0x262107,
+	0x2b56c6,
+	0x236746,
+	0x2bf144,
+	0x241986,
+	0x202003,
+	0x34f109,
+	0x201d46,
+	0x3752c5,
+	0x2a6086,
+	0x2d79c5,
+	0x286f08,
+	0x37cf07,
+	0x261e06,
+	0x234d06,
+	0x3059c8,
+	0x2a8587,
+	0x2a2705,
+	0x2a3bc8,
+	0x3bb748,
+	0x31e3c8,
+	0x3a0f85,
+	0x22b9c6,
+	0x325d09,
+	0x2772c4,
+	0x351d8b,
+	0x22c68b,
+	0x364cc9,
+	0x200dc3,
+	0x25efc5,
+	0x21d306,
+	0x3ba188,
+	0x2fc804,
+	0x2bfac6,
+	0x2d9b89,
+	0x2bc9c5,
+	0x2e4006,
+	0x2dddc6,
+	0x220144,
+	0x2af4ca,
+	0x375208,
+	0x30cf06,
+	0x2cf245,
+	0x3b8247,
+	0x23d187,
+	0x281904,
+	0x22c8c7,
+	0x2b6784,
+	0x333b06,
+	0x20cf43,
+	0x271145,
+	0x334f05,
+	0x3beec8,
+	0x2561c5,
+	0x2825c9,
+	0x274847,
+	0x27484b,
+	0x2aa04c,
+	0x2aa64a,
+	0x33f5c7,
+	0x202e83,
+	0x202e88,
+	0x3a1145,
+	0x29f585,
+	0x2140c4,
+	0x2d9646,
+	0x257d46,
+	0x2419c7,
+	0x34d58b,
+	0x233ac4,
+	0x2e7644,
+	0x2cbd04,
+	0x2d3706,
+	0x222a44,
+	0x22b7c8,
+	0x34b885,
+	0x24fac5,
+	0x365c87,
+	0x377ec9,
+	0x3534c5,
+	0x38dcca,
+	0x248b89,
+	0x2911ca,
+	0x3b0e49,
+	0x310444,
+	0x2bd4c5,
+	0x2b9888,
+	0x2f150b,
+	0x35d785,
+	0x33be86,
+	0x236304,
+	0x282b06,
+	0x3b1889,
+	0x2ed287,
+	0x320e48,
+	0x2a9506,
+	0x2be507,
+	0x287a88,
+	0x3870c6,
+	0x39b804,
+	0x3743c7,
+	0x376945,
+	0x389b87,
+	0x200104,
+	0x333f86,
+	0x2d5f48,
+	0x29ec88,
+	0x2e7007,
+	0x27f988,
+	0x29cdc5,
+	0x213e44,
+	0x3812c8,
+	0x27fa84,
+	0x220005,
+	0x2ffbc4,
+	0x30a547,
+	0x290c87,
+	0x2880c8,
+	0x2d7a06,
+	0x256145,
+	0x2823c8,
+	0x39ca88,
+	0x2a7d49,
+	0x22c986,
+	0x23a048,
+	0x20088a,
+	0x388fc8,
+	0x2ec085,
+	0x349286,
+	0x248a48,
+	0x20778a,
+	0x226047,
+	0x28ee45,
+	0x29ad48,
+	0x2c2404,
+	0x272486,
+	0x2c9a48,
+	0x213ec6,
+	0x20b308,
+	0x296e87,
+	0x211486,
+	0x2bccc4,
+	0x364707,
+	0x2b8e84,
+	0x3b1847,
+	0x2a064d,
+	0x288805,
+	0x2d4dcb,
+	0x2285c6,
+	0x257808,
+	0x24c384,
+	0x357746,
+	0x2848c6,
+	0x28c387,
+	0x29e30d,
+	0x24e587,
+	0x2b93c8,
+	0x278705,
+	0x276e08,
+	0x2ccb86,
+	0x29ce48,
+	0x22ab46,
+	0x25a707,
+	0x39ae89,
+	0x36ebc7,
+	0x28fe48,
+	0x27af45,
+	0x222e08,
+	0x219405,
+	0x3ab545,
+	0x3b10c5,
+	0x23ef43,
+	0x289144,
+	0x26fa05,
+	0x241489,
+	0x3043c6,
+	0x2ecf48,
+	0x383905,
+	0x2bb507,
+	0x2ad54a,
+	0x2e3f49,
+	0x2d348a,
+	0x2da308,
+	0x22d6cc,
+	0x288e4d,
+	0x301bc3,
+	0x20b208,
+	0x209445,
+	0x28a946,
+	0x36cec6,
+	0x2ebb05,
+	0x2237c9,
+	0x20e1c5,
+	0x2823c8,
+	0x25fe06,
+	0x35e006,
+	0x2a8d09,
+	0x39ed87,
+	0x297e86,
+	0x2ad4c8,
+	0x333a88,
+	0x2e4f47,
+	0x2381ce,
+	0x2ccdc5,
+	0x332385,
+	0x213dc8,
+	0x20a247,
+	0x200842,
+	0x2c7504,
+	0x28f90a,
+	0x2621c8,
+	0x389206,
+	0x2a1408,
+	0x2a6186,
+	0x3337c8,
+	0x2b3ac8,
+	0x3ab504,
+	0x2bba45,
+	0x681384,
+	0x681384,
+	0x681384,
+	0x201e03,
+	0x2365c6,
+	0x282886,
+	0x2a508c,
+	0x200943,
+	0x223286,
+	0x20cf04,
+	0x33f888,
+	0x2d99c5,
+	0x28fa06,
+	0x2c31c8,
+	0x2db2c6,
+	0x261d86,
+	0x357d08,
+	0x2d1887,
+	0x237d49,
+	0x2fa8ca,
+	0x20a944,
+	0x27df05,
+	0x29a385,
+	0x2f6c06,
+	0x20ac06,
+	0x2a5ac6,
+	0x2ff206,
+	0x237e84,
+	0x237e8b,
+	0x23c584,
+	0x2a5245,
+	0x2b2ac5,
+	0x378246,
+	0x2090c8,
+	0x288d07,
+	0x320c04,
+	0x232fc3,
+	0x2c1f05,
+	0x311847,
+	0x288c0b,
+	0x3bedc7,
+	0x2c30c8,
+	0x2e7287,
+	0x23d406,
+	0x27a4c8,
+	0x2b004b,
+	0x345746,
+	0x21d449,
+	0x2b01c5,
+	0x315603,
+	0x2e4006,
+	0x296d88,
+	0x21f083,
+	0x271e03,
+	0x287a86,
+	0x2a6186,
+	0x36958a,
+	0x283e85,
+	0x28470b,
+	0x2a5fcb,
+	0x210a83,
+	0x20b943,
+	0x2b6704,
+	0x2af6c7,
+	0x296e04,
+	0x277344,
+	0x2e73c4,
+	0x223e88,
+	0x2cf188,
+	0x205249,
+	0x39e3c8,
+	0x28b487,
+	0x2381c6,
+	0x2ecb8f,
+	0x2ccf06,
+	0x2d9944,
+	0x2cefca,
+	0x311747,
+	0x208206,
+	0x297509,
+	0x2051c5,
+	0x3bf005,
+	0x205306,
+	0x222f43,
+	0x2c2449,
+	0x2273c6,
+	0x202d09,
+	0x392a46,
+	0x271145,
+	0x2be0c5,
+	0x204183,
+	0x2af808,
+	0x213887,
+	0x201e44,
+	0x33f708,
+	0x2ffe04,
+	0x2f0486,
+	0x296706,
+	0x248fc6,
+	0x2d1549,
+	0x29f505,
+	0x388bc6,
+	0x2666c9,
+	0x2cb906,
+	0x223f06,
+	0x397346,
+	0x21ce85,
+	0x2ffbc6,
+	0x25a704,
+	0x3bed05,
+	0x2c8884,
+	0x2b9f86,
+	0x334104,
+	0x2136c3,
+	0x28e745,
+	0x23dac8,
+	0x262987,
+	0x2c1ac9,
+	0x28ed48,
+	0x29fb51,
+	0x2dde4a,
+	0x2fcc07,
+	0x25a986,
+	0x20cf04,
+	0x2c8988,
+	0x233fc8,
+	0x29fd0a,
+	0x2c094d,
+	0x2a7f06,
+	0x357e06,
+	0x3647c6,
+	0x24fac7,
+	0x2b9485,
+	0x210187,
+	0x20cdc5,
+	0x2b1804,
+	0x2ae086,
+	0x241807,
+	0x2c214d,
+	0x248987,
+	0x3a4cc8,
+	0x2826c9,
+	0x349186,
+	0x2a0905,
+	0x22dcc4,
+	0x35d146,
+	0x281806,
+	0x262346,
+	0x2a1c88,
+	0x21cd43,
+	0x20aa83,
+	0x338e45,
+	0x207b06,
+	0x2b3a85,
+	0x2a9708,
+	0x2a48ca,
+	0x3a2dc4,
+	0x33f888,
+	0x29dd08,
+	0x378087,
+	0x3839c9,
+	0x2c2dc8,
+	0x2a6d07,
+	0x2957c6,
+	0x213eca,
+	0x35d1c8,
+	0x2f8589,
+	0x292c88,
+	0x229b89,
+	0x2e8747,
+	0x33bdc5,
+	0x36ad46,
+	0x2a9c48,
+	0x287c08,
+	0x29de88,
+	0x2fcdc8,
+	0x2a5245,
+	0x218944,
+	0x213588,
+	0x24b384,
+	0x3b0c44,
+	0x271145,
+	0x299ac7,
+	0x377c89,
+	0x28c187,
+	0x2008c5,
+	0x27f206,
+	0x363686,
+	0x200b84,
+	0x2a9046,
+	0x255f84,
+	0x276d06,
+	0x377a46,
+	0x21eec6,
+	0x2016c5,
+	0x2a95c7,
+	0x202e83,
+	0x21dd89,
+	0x3057c8,
+	0x2f6d04,
+	0x2f6d0d,
+	0x29ed88,
+	0x2d7248,
+	0x2f8506,
+	0x39af89,
+	0x2e3f49,
+	0x3b1585,
+	0x2a49ca,
+	0x2edbca,
+	0x2a5ccc,
+	0x2a5e46,
+	0x27fe06,
+	0x2cd086,
+	0x2c84c9,
+	0x28ab86,
+	0x2101c6,
+	0x20e286,
+	0x274a08,
+	0x27f986,
+	0x2d92cb,
+	0x299c45,
+	0x24fac5,
+	0x280085,
+	0x39be46,
+	0x213e83,
+	0x248f46,
+	0x248907,
+	0x2c8845,
+	0x24d545,
+	0x3410c5,
+	0x313846,
+	0x204dc4,
+	0x385806,
+	0x284049,
+	0x39bccc,
+	0x2b1548,
+	0x23e844,
+	0x2ff8c6,
+	0x2286c6,
+	0x296d88,
+	0x220148,
+	0x39bbc9,
+	0x3b8247,
+	0x260c89,
+	0x255806,
+	0x237404,
+	0x214944,
+	0x20a584,
+	0x287a88,
+	0x377aca,
+	0x353446,
+	0x35fb87,
+	0x37e787,
+	0x3a0c45,
+	0x29a344,
+	0x295046,
+	0x2b94c6,
+	0x202bc3,
+	0x305607,
+	0x2507c8,
+	0x3b16ca,
+	0x2d4708,
+	0x28a688,
+	0x334145,
+	0x352b85,
+	0x284dc5,
+	0x3a1006,
+	0x2393c6,
+	0x25b285,
+	0x34f349,
+	0x29a14c,
+	0x284e87,
+	0x29fd88,
+	0x24ee05,
+	0x681384,
+	0x240ac4,
+	0x25d1c4,
+	0x217946,
+	0x2a728e,
+	0x3bf087,
+	0x24fcc5,
+	0x27724c,
+	0x2ffcc7,
+	0x241787,
+	0x274e89,
+	0x2208c9,
+	0x28ee45,
+	0x3057c8,
+	0x325d09,
+	0x31e285,
+	0x2c8788,
+	0x227546,
+	0x381546,
+	0x2e2dc4,
+	0x25ff08,
+	0x248743,
+	0x235e44,
+	0x2c1f85,
+	0x204dc7,
+	0x21b4c5,
+	0x200749,
+	0x27e64d,
+	0x2935c6,
+	0x229b04,
+	0x2958c8,
+	0x27f44a,
+	0x21da87,
+	0x243905,
+	0x235e83,
+	0x2a618e,
+	0x2af90c,
+	0x2f1f87,
+	0x2a7447,
+	0x200143,
+	0x28abc5,
+	0x25d1c5,
+	0x2a17c8,
+	0x29db49,
+	0x23e746,
+	0x296e04,
+	0x2fcb46,
+	0x3650cb,
+	0x2e3ccc,
+	0x376447,
+	0x2d9585,
+	0x3bb648,
+	0x2e4d05,
+	0x2cefc7,
+	0x2ddc87,
+	0x248745,
+	0x213e83,
+	0x3b36c4,
+	0x21b705,
+	0x2fc085,
+	0x2fc086,
+	0x2821c8,
+	0x241807,
+	0x36d1c6,
+	0x25b686,
+	0x3b1006,
+	0x2f88c9,
+	0x28c747,
+	0x262606,
+	0x2e3e46,
+	0x27e106,
+	0x2af405,
+	0x21e8c6,
+	0x390e05,
+	0x235708,
+	0x2990cb,
+	0x294b86,
+	0x37e7c4,
+	0x2c8109,
+	0x274844,
+	0x2274c8,
+	0x2441c7,
+	0x289b84,
+	0x2c2688,
+	0x2c94c4,
+	0x2af444,
+	0x39ac45,
+	0x330a46,
+	0x223dc7,
+	0x20b3c3,
+	0x2a5785,
+	0x32a504,
+	0x3323c6,
+	0x3b1608,
+	0x39c785,
+	0x298d89,
+	0x21fb45,
+	0x223288,
+	0x22cfc7,
+	0x398048,
+	0x2c1907,
+	0x2fe589,
+	0x271846,
+	0x360486,
+	0x20e284,
+	0x295705,
+	0x3093cc,
+	0x280087,
+	0x280fc7,
+	0x37e648,
+	0x2935c6,
+	0x2794c4,
+	0x34bc04,
+	0x288449,
+	0x2cd186,
+	0x253707,
+	0x2cff84,
+	0x24ab06,
+	0x35f245,
+	0x2d7547,
+	0x2d9246,
+	0x2594c9,
+	0x2eda07,
+	0x26f5c7,
+	0x2a8b86,
+	0x24aa45,
+	0x285988,
+	0x227248,
+	0x2f6a46,
+	0x39c7c5,
+	0x344806,
+	0x202c03,
+	0x2a1649,
+	0x2a584e,
+	0x2c1608,
+	0x2fff08,
+	0x2f684b,
+	0x298fc6,
+	0x20a884,
+	0x261d84,
+	0x2a594a,
+	0x21e107,
+	0x2626c5,
+	0x21d449,
+	0x2c7205,
+	0x3b0c87,
+	0x250584,
+	0x27b907,
+	0x30fdc8,
+	0x2d0f06,
+	0x365489,
+	0x2c2eca,
+	0x21e086,
+	0x29e8c6,
+	0x2b2a45,
+	0x38ef85,
+	0x325647,
+	0x24ec48,
+	0x35f188,
+	0x3ab506,
+	0x2be145,
+	0x20a98e,
+	0x2bb884,
+	0x2a1745,
+	0x27eb89,
+	0x2ed608,
+	0x292e86,
+	0x2a36cc,
+	0x2a44d0,
+	0x2a6ecf,
+	0x2a8308,
+	0x33f5c7,
+	0x2016c5,
+	0x26fa05,
+	0x389089,
+	0x29af49,
+	0x23fac6,
+	0x35d807,
+	0x2b8545,
+	0x2b43c9,
+	0x3528c6,
+	0x28a9cd,
+	0x288789,
+	0x277344,
+	0x2c1388,
+	0x213649,
+	0x353606,
+	0x27f305,
+	0x360486,
+	0x320d09,
+	0x281688,
+	0x217e05,
+	0x200984,
+	0x2a388b,
+	0x3534c5,
+	0x2a39c6,
+	0x289186,
+	0x26e646,
+	0x27c18b,
+	0x298e89,
+	0x25b5c5,
+	0x397e07,
+	0x2dddc6,
+	0x34dec6,
+	0x25cf48,
+	0x330b49,
+	0x3a4a8c,
+	0x311648,
+	0x23c586,
+	0x329e83,
+	0x28bf46,
+	0x27bfc5,
+	0x284a48,
+	0x2bdb46,
+	0x2d7788,
+	0x251b05,
+	0x283245,
+	0x27a8c8,
+	0x333947,
+	0x36ce07,
+	0x2419c7,
+	0x34dd48,
+	0x39ad08,
+	0x31a706,
+	0x2b9dc7,
+	0x273f47,
+	0x27be8a,
+	0x20d703,
+	0x39be46,
+	0x23e985,
+	0x28f904,
+	0x2826c9,
+	0x2fe504,
+	0x262a04,
+	0x2a4d44,
+	0x2a744b,
+	0x2137c7,
+	0x20abc5,
+	0x29cac8,
+	0x27f206,
+	0x27f208,
+	0x283dc6,
+	0x293345,
+	0x293e85,
+	0x295f46,
+	0x296b48,
+	0x297448,
+	0x282886,
+	0x29c90f,
+	0x2a1110,
+	0x208605,
+	0x202e83,
+	0x2374c5,
+	0x315788,
+	0x29ae49,
+	0x31e3c8,
+	0x2f8748,
+	0x2bec08,
+	0x213887,
+	0x27eec9,
+	0x2d7988,
+	0x2730c4,
+	0x2a4bc8,
+	0x2b5509,
+	0x2babc7,
+	0x2a2644,
+	0x28c248,
+	0x2a938a,
+	0x3085c6,
+	0x2a7f06,
+	0x22c849,
+	0x2a4707,
+	0x2d4588,
+	0x2fdbc8,
+	0x2cfe08,
+	0x3690c5,
+	0x38ff05,
+	0x24fac5,
+	0x25d185,
+	0x38cb87,
+	0x213e85,
+	0x2c8845,
+	0x20ae06,
+	0x31e307,
+	0x2f1447,
+	0x2a9686,
+	0x2da845,
+	0x2a39c6,
+	0x202f45,
+	0x2b83c8,
+	0x2f1e04,
+	0x2cb986,
+	0x348084,
+	0x2b9048,
+	0x2cba8a,
+	0x28300c,
+	0x34d785,
+	0x24fb86,
+	0x3a4c46,
+	0x234b86,
+	0x23c604,
+	0x35f505,
+	0x283c07,
+	0x2a4789,
+	0x2d3c07,
+	0x681384,
+	0x681384,
+	0x320a85,
+	0x38d584,
+	0x2a308a,
+	0x27f086,
+	0x27a704,
+	0x208185,
+	0x3875c5,
+	0x2b93c4,
+	0x288dc7,
+	0x21fac7,
+	0x2d3708,
+	0x342348,
+	0x217e09,
+	0x2a5308,
+	0x2a324b,
+	0x251044,
+	0x375f45,
+	0x2860c5,
+	0x241949,
+	0x330b49,
+	0x2c8008,
+	0x243f48,
+	0x2df044,
+	0x228705,
+	0x202d43,
+	0x2f6bc5,
+	0x388c46,
+	0x29d98c,
+	0x2189c6,
+	0x37cfc6,
+	0x293105,
+	0x3138c8,
+	0x2c1786,
+	0x25ab06,
+	0x2a7f06,
+	0x22e2cc,
+	0x262504,
+	0x3b114a,
+	0x293048,
+	0x29d7c7,
+	0x32a406,
+	0x23e807,
+	0x2f2ec5,
+	0x2b56c6,
+	0x35c286,
+	0x367cc7,
+	0x262a44,
+	0x30a645,
+	0x27eb84,
+	0x2b1887,
+	0x27edc8,
+	0x27fc8a,
+	0x286907,
+	0x375387,
+	0x33f547,
+	0x2e4e49,
+	0x29d98a,
+	0x2373c3,
+	0x262945,
+	0x20b343,
+	0x2e7409,
+	0x254ec8,
+	0x23d2c7,
+	0x31e4c9,
+	0x227346,
+	0x2042c8,
+	0x33d785,
+	0x39cb8a,
+	0x2dbc89,
+	0x276209,
+	0x3a34c7,
+	0x2340c9,
+	0x21edc8,
+	0x367e86,
+	0x24fd48,
+	0x21ce87,
+	0x237f87,
+	0x248b87,
+	0x2d5dc8,
+	0x2ff746,
+	0x2a9145,
+	0x283c07,
+	0x29e3c8,
+	0x348004,
+	0x2d41c4,
+	0x297d87,
+	0x2b3e47,
+	0x325b8a,
+	0x367e06,
+	0x35854a,
+	0x2c7447,
+	0x2bb647,
+	0x358004,
+	0x27dec4,
+	0x2d7446,
+	0x281b84,
+	0x281b8c,
+	0x203185,
+	0x21ff89,
+	0x265684,
+	0x2b9485,
+	0x27f3c8,
+	0x22d245,
+	0x204dc6,
+	0x225f44,
+	0x28f30a,
+	0x2b25c6,
+	0x2a424a,
+	0x2b7887,
+	0x236b45,
+	0x222f45,
+	0x3a0c8a,
+	0x296cc5,
+	0x2a7e06,
+	0x24b384,
+	0x2b6886,
+	0x325705,
+	0x2bdc06,
+	0x2e700c,
+	0x2d388a,
+	0x2957c4,
+	0x2381c6,
+	0x2a4707,
+	0x2d91c4,
+	0x274a08,
+	0x39e246,
+	0x20a809,
+	0x2baec9,
+	0x2a6c89,
+	0x351f46,
+	0x21cf86,
+	0x24fe87,
+	0x34f288,
+	0x21cd89,
+	0x2137c7,
+	0x29cc46,
+	0x2be587,
+	0x364685,
+	0x2bb884,
+	0x24fa47,
+	0x274105,
+	0x28f845,
+	0x36c347,
+	0x248608,
+	0x3bb5c6,
+	0x29f24d,
+	0x2a19cf,
+	0x2a5fcd,
+	0x200904,
+	0x23dbc6,
+	0x2dc1c8,
+	0x20e245,
+	0x27c048,
+	0x2499ca,
+	0x277344,
+	0x365646,
+	0x33ae07,
+	0x233ac7,
+	0x2d1949,
+	0x24fd05,
+	0x2b93c4,
+	0x2bb98a,
+	0x2c2989,
+	0x2341c7,
+	0x272306,
+	0x353606,
+	0x228646,
+	0x374486,
+	0x2db94f,
+	0x2dc089,
+	0x27f986,
+	0x233ec6,
+	0x320289,
+	0x2b9ec7,
+	0x229403,
+	0x22e446,
+	0x2052c3,
+	0x2eb9c8,
+	0x2be3c7,
+	0x2a8509,
+	0x296588,
+	0x36cf48,
+	0x385f86,
+	0x218909,
+	0x398845,
+	0x2b9f84,
+	0x29a687,
+	0x2c8545,
+	0x200904,
+	0x20ac88,
+	0x202044,
+	0x2b9c07,
+	0x3749c6,
+	0x2e7a85,
+	0x292c88,
+	0x3534cb,
+	0x3778c7,
+	0x3a0f06,
+	0x2ccf84,
+	0x348186,
+	0x271145,
+	0x274105,
+	0x285709,
+	0x2889c9,
+	0x237fc4,
+	0x238005,
+	0x238205,
+	0x39ca06,
+	0x3058c8,
+	0x2c6b86,
+	0x25060b,
+	0x36e4ca,
+	0x2b8f85,
+	0x293f06,
+	0x3a2ac5,
+	0x2e9dc5,
+	0x2ad387,
+	0x39c0c8,
+	0x260c84,
+	0x26be86,
+	0x2974c6,
+	0x21ef87,
+	0x3155c4,
+	0x2848c6,
+	0x2427c5,
+	0x2427c9,
+	0x21b584,
+	0x29a4c9,
+	0x282886,
+	0x2c8f48,
+	0x238205,
+	0x37e885,
+	0x2bdc06,
+	0x3a4989,
+	0x2208c9,
+	0x37d046,
+	0x2ed708,
+	0x277348,
+	0x3a2a84,
+	0x2bbcc4,
+	0x2bbcc8,
+	0x32e048,
+	0x260d89,
+	0x388bc6,
+	0x2a7f06,
+	0x3294cd,
+	0x2bfac6,
+	0x2d6b49,
+	0x2dd5c5,
+	0x205306,
+	0x2102c8,
+	0x326885,
+	0x273f84,
+	0x271145,
+	0x2882c8,
+	0x2a2e49,
+	0x27ec44,
+	0x333f86,
+	0x22d10a,
+	0x2f1e88,
+	0x325d09,
+	0x261f0a,
+	0x31e446,
+	0x2a1b88,
+	0x2ced85,
+	0x2c5ec8,
+	0x2c1a05,
+	0x227209,
+	0x37ac49,
+	0x203282,
+	0x2b01c5,
+	0x2782c6,
+	0x2827c7,
+	0x34e085,
+	0x30ce06,
+	0x326948,
+	0x2935c6,
+	0x2b9749,
+	0x2810c6,
+	0x25cdc8,
+	0x2b0805,
+	0x264906,
+	0x25a808,
+	0x287a88,
+	0x2e8648,
+	0x353788,
+	0x21e8c4,
+	0x281943,
+	0x2b9984,
+	0x286b06,
+	0x3646c4,
+	0x2ffe47,
+	0x25aa09,
+	0x2cbd05,
+	0x2fdbc6,
+	0x22e446,
+	0x28200b,
+	0x2b8ec6,
+	0x2cf8c6,
+	0x2d13c8,
+	0x24d486,
+	0x236943,
+	0x2164c3,
+	0x2bb884,
+	0x239f45,
+	0x387b87,
+	0x27edc8,
+	0x27edcf,
+	0x283b0b,
+	0x3056c8,
+	0x334006,
+	0x3059ce,
+	0x251143,
+	0x387b04,
+	0x2b8e45,
+	0x2b9246,
+	0x29514b,
+	0x299b86,
+	0x222a49,
+	0x2e7a85,
+	0x3999c8,
+	0x216688,
+	0x22078c,
+	0x2a7486,
+	0x2f6c06,
+	0x2dac05,
+	0x28fc08,
+	0x25a805,
+	0x356288,
+	0x2a3a4a,
+	0x2a6409,
+	0x681384,
+	0x3b60f882,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x208e83,
+	0x201a03,
+	0x213083,
+	0x286644,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x2de944,
+	0x323043,
+	0x34e347,
+	0x28cac3,
+	0x200e03,
+	0x293408,
+	0x201a03,
+	0x29630b,
+	0x2f3743,
+	0x3a03c6,
+	0x205082,
+	0x22facb,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x201a03,
+	0x220b83,
+	0x201503,
+	0x207102,
+	0x16fb88,
+	0x32d1c5,
+	0x274188,
+	0x2f9f88,
+	0x20f882,
+	0x20a605,
+	0x3785c7,
+	0x201842,
+	0x24c5c7,
+	0x207b02,
+	0x2f6607,
+	0x2cc409,
+	0x2ce948,
+	0x2cfc89,
+	0x24b2c2,
+	0x2707c7,
+	0x37cdc4,
+	0x378687,
+	0x36e3c7,
+	0x264d42,
+	0x28cac3,
+	0x214642,
+	0x204d42,
+	0x200442,
+	0x21cc82,
+	0x206b42,
+	0x20d2c2,
+	0x2aff05,
+	0x240a05,
+	0xf882,
+	0x3cac3,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x170c3,
+	0x8c1,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x221f43,
+	0x3e4f5906,
+	0x42bc3,
+	0x873c5,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x84c2,
+	0x16fb88,
+	0xe03,
+	0x1a3443,
+	0x4ec04,
+	0xe5105,
+	0x207102,
+	0x39cdc4,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x38acc3,
+	0x2b13c5,
+	0x255783,
+	0x211a83,
+	0x208e83,
+	0x21b543,
+	0x201a03,
+	0x215443,
+	0x20e383,
+	0x202443,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x20f882,
+	0x201a03,
+	0x16fb88,
+	0x323043,
+	0x1a3443,
+	0x16fb88,
+	0x1a3443,
+	0x2bcc43,
+	0x238543,
+	0x23a844,
+	0x23cac3,
+	0x323043,
+	0x205e82,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x205e82,
+	0x229443,
+	0x208e83,
+	0x201a03,
+	0x2ef783,
+	0x215443,
+	0x207102,
+	0x20f882,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x3a03c5,
+	0xa4f06,
+	0x286644,
+	0x205082,
+	0x16fb88,
+	0x207102,
+	0x25088,
+	0x134943,
+	0x20f882,
+	0x42899306,
+	0x6a04,
+	0xb610b,
+	0x44e86,
+	0x8cbc7,
+	0x23cac3,
+	0x51648,
+	0x323043,
+	0x8b205,
+	0x1493c4,
+	0x227583,
+	0x556c7,
+	0xe06c4,
+	0x208e83,
+	0x1a3284,
+	0x1a3443,
+	0x201a03,
+	0x2f4544,
+	0xb5ec8,
+	0x12cf06,
+	0x16308,
+	0x1252c5,
+	0x9fc9,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x200e03,
+	0x201a03,
+	0x2f3743,
+	0x205082,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231603,
+	0x21bf84,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x2de944,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x3a03c6,
+	0x23cac3,
+	0x323043,
+	0x18a783,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x8cbc7,
+	0x16fb88,
+	0x323043,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x45238543,
+	0x23cac3,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x207102,
+	0x20f882,
+	0x238543,
+	0x323043,
+	0x208e83,
+	0x200442,
+	0x201a03,
+	0x31f1c7,
+	0x342b8b,
+	0x22fc83,
+	0x244708,
+	0x34f007,
+	0x348746,
+	0x382d45,
+	0x232309,
+	0x28c848,
+	0x346789,
+	0x346790,
+	0x36f64b,
+	0x2e2109,
+	0x205dc3,
+	0x20af09,
+	0x23bd86,
+	0x23bd8c,
+	0x32d288,
+	0x3bc208,
+	0x244a49,
+	0x29854e,
+	0x2cc1cb,
+	0x2e5c0c,
+	0x203ec3,
+	0x26ad0c,
+	0x203ec9,
+	0x30ae47,
+	0x23ca0c,
+	0x2b478a,
+	0x252044,
+	0x2768cd,
+	0x26abc8,
+	0x21308d,
+	0x26fec6,
+	0x28664b,
+	0x200cc9,
+	0x2cf787,
+	0x332c86,
+	0x3372c9,
+	0x34834a,
+	0x319108,
+	0x2f3204,
+	0x2fe987,
+	0x363787,
+	0x2d0184,
+	0x38d204,
+	0x2345c9,
+	0x28a4c9,
+	0x2b7288,
+	0x216d05,
+	0x339645,
+	0x213c86,
+	0x276789,
+	0x249c4d,
+	0x33bf88,
+	0x213b87,
+	0x382dc8,
+	0x2fa686,
+	0x39b444,
+	0x2501c5,
+	0x201c46,
+	0x202884,
+	0x203dc7,
+	0x206f4a,
+	0x219784,
+	0x21dfc6,
+	0x21ea49,
+	0x21ea4f,
+	0x21fc8d,
+	0x220f06,
+	0x224c90,
+	0x225086,
+	0x2257c7,
+	0x2269c7,
+	0x2269cf,
+	0x2276c9,
+	0x22cb06,
+	0x22da47,
+	0x22da48,
+	0x22f289,
+	0x358088,
+	0x2eb507,
+	0x212843,
+	0x394f46,
+	0x3c0b48,
+	0x29880a,
+	0x236089,
+	0x205d83,
+	0x3784c6,
+	0x26bcca,
+	0x28eb87,
+	0x30ac8a,
+	0x25a18e,
+	0x227806,
+	0x2b03c7,
+	0x217bc6,
+	0x203f86,
+	0x38fd0b,
+	0x31708a,
+	0x32138d,
+	0x21d047,
+	0x20e408,
+	0x20e409,
+	0x20e40f,
+	0x2c1c4c,
+	0x2b4089,
+	0x2d890e,
+	0x34e44a,
+	0x28b906,
+	0x314a86,
+	0x319d8c,
+	0x31be8c,
+	0x327508,
+	0x36eac7,
+	0x274d85,
+	0x3485c4,
+	0x20f88e,
+	0x299684,
+	0x388947,
+	0x39140a,
+	0x38a814,
+	0x39390f,
+	0x226b88,
+	0x394e08,
+	0x35eccd,
+	0x35ecce,
+	0x3a0849,
+	0x238788,
+	0x23878f,
+	0x23c70c,
+	0x23c70f,
+	0x23d907,
+	0x240c0a,
+	0x2459cb,
+	0x243788,
+	0x245c87,
+	0x3ac74d,
+	0x322b46,
+	0x276a86,
+	0x248dc9,
+	0x364b08,
+	0x24cf48,
+	0x24cf4e,
+	0x2f4087,
+	0x24e145,
+	0x24e9c5,
+	0x204b44,
+	0x348a06,
+	0x2b7188,
+	0x20db03,
+	0x2f948e,
+	0x3acb08,
+	0x2b588b,
+	0x378bc7,
+	0x3ab345,
+	0x233d86,
+	0x2b1f87,
+	0x32f2c8,
+	0x325449,
+	0x322dc5,
+	0x28e788,
+	0x21c946,
+	0x3afeca,
+	0x20f789,
+	0x23cac9,
+	0x23cacb,
+	0x346448,
+	0x2d0049,
+	0x216dc6,
+	0x23768a,
+	0x293c0a,
+	0x240e0c,
+	0x28e4c7,
+	0x2ce74a,
+	0x36b38b,
+	0x36b399,
+	0x312408,
+	0x3a0445,
+	0x2cdd46,
+	0x25c489,
+	0x3449c6,
+	0x2df8ca,
+	0x28ca46,
+	0x20df44,
+	0x2cdecd,
+	0x20df47,
+	0x218209,
+	0x250ac5,
+	0x250c08,
+	0x251409,
+	0x251844,
+	0x251f47,
+	0x251f48,
+	0x2526c7,
+	0x26e2c8,
+	0x255cc7,
+	0x25b845,
+	0x25f3cc,
+	0x25fc09,
+	0x2c8c0a,
+	0x39ec09,
+	0x20b009,
+	0x37ee4c,
+	0x264f0b,
+	0x2662c8,
+	0x267448,
+	0x26a804,
+	0x289848,
+	0x28d209,
+	0x2b4847,
+	0x20e646,
+	0x200f47,
+	0x2c4289,
+	0x32264b,
+	0x325147,
+	0x201a87,
+	0x2b79c7,
+	0x213004,
+	0x213005,
+	0x2a7c05,
+	0x34b1cb,
+	0x3a9384,
+	0x350448,
+	0x26e94a,
+	0x21ca07,
+	0x300687,
+	0x294712,
+	0x276c06,
+	0x23a1c6,
+	0x33888e,
+	0x27ab46,
+	0x29abc8,
+	0x29b38f,
+	0x213448,
+	0x302848,
+	0x3bd10a,
+	0x3bd111,
+	0x2a990e,
+	0x25654a,
+	0x25654c,
+	0x20bf07,
+	0x238990,
+	0x200408,
+	0x2a9b05,
+	0x2b238a,
+	0x2028cc,
+	0x29cf8d,
+	0x302346,
+	0x302347,
+	0x30234c,
+	0x30c80c,
+	0x335d4c,
+	0x2edfcb,
+	0x28e0c4,
+	0x22c9c4,
+	0x354609,
+	0x39e807,
+	0x229989,
+	0x293a49,
+	0x3b6587,
+	0x2b4606,
+	0x2b4609,
+	0x2b4a03,
+	0x21b7ca,
+	0x31fd07,
+	0x34304b,
+	0x32120a,
+	0x2f6744,
+	0x35f646,
+	0x286b89,
+	0x281a04,
+	0x20324a,
+	0x3a1205,
+	0x2c4d45,
+	0x2c4d4d,
+	0x2c508e,
+	0x2b9ac5,
+	0x32ab86,
+	0x39ffc7,
+	0x25f64a,
+	0x3a8286,
+	0x2eefc4,
+	0x2f9847,
+	0x3bc50b,
+	0x2fa747,
+	0x30b444,
+	0x256fc6,
+	0x256fcd,
+	0x2c3f4c,
+	0x208d46,
+	0x33c18a,
+	0x230206,
+	0x22ddc8,
+	0x285107,
+	0x34c98a,
+	0x3840c6,
+	0x210443,
+	0x210446,
+	0x3c09c8,
+	0x2a344a,
+	0x2801c7,
+	0x2801c8,
+	0x289e04,
+	0x256ac7,
+	0x283288,
+	0x345388,
+	0x284508,
+	0x35874a,
+	0x2e4505,
+	0x2e9a07,
+	0x256393,
+	0x343d86,
+	0x2e0908,
+	0x229f89,
+	0x24c488,
+	0x38600b,
+	0x2d3d48,
+	0x2bc644,
+	0x27a9c6,
+	0x317ec6,
+	0x330889,
+	0x3bc3c7,
+	0x25f4c8,
+	0x2931c6,
+	0x36c244,
+	0x30aa05,
+	0x2d4008,
+	0x2cd88a,
+	0x2cdb48,
+	0x2d4b06,
+	0x2a1d8a,
+	0x2fc208,
+	0x2d8fc8,
+	0x2d9ec8,
+	0x2da506,
+	0x2dc3c6,
+	0x20c0cc,
+	0x2dc990,
+	0x285505,
+	0x213248,
+	0x30d410,
+	0x213250,
+	0x34660e,
+	0x20bd4e,
+	0x20bd54,
+	0x20e78f,
+	0x20eb46,
+	0x3072d1,
+	0x332e13,
+	0x333288,
+	0x31d245,
+	0x2a0bc8,
+	0x395705,
+	0x23540c,
+	0x2309c9,
+	0x2994c9,
+	0x230e47,
+	0x263549,
+	0x261047,
+	0x2ffa46,
+	0x24ffc7,
+	0x20ef05,
+	0x217103,
+	0x20dcc9,
+	0x22a249,
+	0x38a783,
+	0x3b35c4,
+	0x358c8d,
+	0x3b83cf,
+	0x36c285,
+	0x331786,
+	0x21ac47,
+	0x32d007,
+	0x290806,
+	0x29080b,
+	0x2aa805,
+	0x263c06,
+	0x300b87,
+	0x257449,
+	0x345a06,
+	0x20cb45,
+	0x2248cb,
+	0x230786,
+	0x38ad45,
+	0x273988,
+	0x2a6988,
+	0x2ba50c,
+	0x2ba510,
+	0x2b64c9,
+	0x2c5607,
+	0x2e520b,
+	0x30be86,
+	0x2eb3ca,
+	0x2ec90b,
+	0x2ee70a,
+	0x2ee986,
+	0x2ef645,
+	0x31fa46,
+	0x37d408,
+	0x230f0a,
+	0x35e95c,
+	0x2f380c,
+	0x2f3b08,
+	0x3a03c5,
+	0x35cec7,
+	0x25b0c6,
+	0x27f7c5,
+	0x2227c6,
+	0x2909c8,
+	0x2c2c07,
+	0x298448,
+	0x2b04ca,
+	0x33764c,
+	0x3378c9,
+	0x39b5c7,
+	0x215c04,
+	0x24ea86,
+	0x2d518a,
+	0x293b45,
+	0x211ecc,
+	0x212e48,
+	0x389c88,
+	0x21904c,
+	0x2266cc,
+	0x229549,
+	0x229787,
+	0x23ff4c,
+	0x2454c4,
+	0x24718a,
+	0x23354c,
+	0x279a4b,
+	0x24bfcb,
+	0x3821c6,
+	0x2f7447,
+	0x20e947,
+	0x238bcf,
+	0x303191,
+	0x2e16d2,
+	0x314ecd,
+	0x314ece,
+	0x31520e,
+	0x20e948,
+	0x20e952,
+	0x253e08,
+	0x34ec47,
+	0x25430a,
+	0x208b08,
+	0x27ab05,
+	0x38c9ca,
+	0x2255c7,
+	0x2e6f44,
+	0x227103,
+	0x297185,
+	0x3bd387,
+	0x2fb547,
+	0x29d18e,
+	0x308c8d,
+	0x30d7c9,
+	0x21f545,
+	0x31c443,
+	0x326446,
+	0x264085,
+	0x27dc48,
+	0x2c0649,
+	0x2a0105,
+	0x3ac94f,
+	0x2b6207,
+	0x382bc5,
+	0x37958a,
+	0x358946,
+	0x2522c9,
+	0x37db4c,
+	0x2fec09,
+	0x2094c6,
+	0x26e74c,
+	0x329f86,
+	0x3017c8,
+	0x301c86,
+	0x312586,
+	0x2082c4,
+	0x266643,
+	0x2b380a,
+	0x32e411,
+	0x30650a,
+	0x265345,
+	0x271ac7,
+	0x25c7c7,
+	0x283384,
+	0x28338b,
+	0x2cfb08,
+	0x2c1486,
+	0x37e6c5,
+	0x3b01c4,
+	0x280ac9,
+	0x320804,
+	0x24cd87,
+	0x359f05,
+	0x359f07,
+	0x338ac5,
+	0x2affc3,
+	0x34eb08,
+	0x35f2ca,
+	0x20b3c3,
+	0x32d20a,
+	0x281ec6,
+	0x3ac6cf,
+	0x2f4009,
+	0x2f9410,
+	0x2ebe48,
+	0x2d5809,
+	0x29f087,
+	0x256f4f,
+	0x31e884,
+	0x2de9c4,
+	0x224f06,
+	0x317b06,
+	0x2e2aca,
+	0x381c46,
+	0x2ff587,
+	0x30c148,
+	0x30c347,
+	0x30cbc7,
+	0x30f08a,
+	0x310b4b,
+	0x3b1b45,
+	0x2e1308,
+	0x204443,
+	0x2045cc,
+	0x38000f,
+	0x274b8d,
+	0x2aefc7,
+	0x30d909,
+	0x2e8207,
+	0x24f2c8,
+	0x38aa0c,
+	0x2bc548,
+	0x231848,
+	0x321d0e,
+	0x336054,
+	0x336564,
+	0x354e4a,
+	0x37018b,
+	0x261104,
+	0x261109,
+	0x3656c8,
+	0x24ef85,
+	0x20d60a,
+	0x3acd47,
+	0x31f944,
+	0x39c783,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x28cac3,
+	0x20c0c6,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0x207102,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x323043,
+	0x255783,
+	0x20c0c6,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x207102,
+	0x242043,
+	0x20f882,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x201382,
+	0x235f42,
+	0x20f882,
+	0x238543,
+	0x206902,
+	0x200942,
+	0x231604,
+	0x20f644,
+	0x22a482,
+	0x21bf84,
+	0x200442,
+	0x201a03,
+	0x221483,
+	0x3821c6,
+	0x21a902,
+	0x202642,
+	0x20c4c2,
+	0x47a13443,
+	0x47e0bf03,
+	0x5d306,
+	0x5d306,
+	0x286644,
+	0x200e03,
+	0x14b700a,
+	0x12ea0c,
+	0xf4cc,
+	0x871cd,
+	0x131645,
+	0x26547,
+	0x1b1c6,
+	0x21088,
+	0x23087,
+	0x28b08,
+	0x1aa20a,
+	0x1397c7,
+	0x48adf485,
+	0x1359c9,
+	0x3e34b,
+	0x35dcb,
+	0x42e48,
+	0x172f4a,
+	0x9288e,
+	0x144c28b,
+	0x6a04,
+	0x63d46,
+	0x7588,
+	0xf8d08,
+	0x3e607,
+	0x1a787,
+	0x57f89,
+	0x81a87,
+	0xdd088,
+	0x12f5c9,
+	0x49804,
+	0x49f45,
+	0x12bfce,
+	0xb084d,
+	0x8ca48,
+	0x48e34406,
+	0x49834408,
+	0x7b548,
+	0x11f3d0,
+	0x5998c,
+	0x6b9c7,
+	0x6c647,
+	0x71387,
+	0x77fc7,
+	0x13c42,
+	0x144ec7,
+	0x11724c,
+	0x43b87,
+	0xac206,
+	0xac7c9,
+	0xae208,
+	0x206c2,
+	0x942,
+	0xbee8b,
+	0x1a3307,
+	0x18009,
+	0x164ec9,
+	0x3ef48,
+	0xb8042,
+	0x134649,
+	0xcc60a,
+	0xd2689,
+	0xdfdc9,
+	0xe0b08,
+	0xe1b87,
+	0xe4489,
+	0xe61c5,
+	0xe67d0,
+	0x191646,
+	0x11205,
+	0x31e8d,
+	0x235c6,
+	0xefd07,
+	0xf4558,
+	0x14f508,
+	0xc74a,
+	0xb282,
+	0x5524d,
+	0xa02,
+	0x86286,
+	0x95408,
+	0x8f148,
+	0x16fa49,
+	0x586c8,
+	0x6420e,
+	0x126447,
+	0x1051cd,
+	0xfb445,
+	0x144c48,
+	0x19fc08,
+	0x106046,
+	0xc2,
+	0x12cf06,
+	0x4542,
+	0x341,
+	0x65a07,
+	0xf6fc3,
+	0x492f4dc4,
+	0x4969c243,
+	0x141,
+	0x19d06,
+	0x141,
+	0x1,
+	0x19d06,
+	0xf6fc3,
+	0x1402285,
+	0x252044,
+	0x238543,
+	0x253384,
+	0x231604,
+	0x208e83,
+	0x229e45,
+	0x221f43,
+	0x20c843,
+	0x355685,
+	0x202443,
+	0x4aa38543,
+	0x23cac3,
+	0x323043,
+	0x200041,
+	0x28cac3,
+	0x20f644,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x215443,
+	0x16fb88,
+	0x207102,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x200942,
+	0x231604,
+	0x255783,
+	0x28cac3,
+	0x208e83,
+	0x200e03,
+	0x201a03,
+	0x202443,
+	0x16fb88,
+	0x37fd82,
+	0x18c1c7,
+	0xf882,
+	0x10a985,
+	0x1480cc8,
+	0x10c50e,
+	0x4ba0ab02,
+	0x31fec8,
+	0x2bdd86,
+	0x2ca186,
+	0x2bd707,
+	0x4be00b42,
+	0x4c3ac548,
+	0x21870a,
+	0x26b448,
+	0x200242,
+	0x31fb49,
+	0x3b1b87,
+	0x21ec06,
+	0x34e849,
+	0x2e9b44,
+	0x348646,
+	0x2ca584,
+	0x27f584,
+	0x25f009,
+	0x32d906,
+	0x240ac5,
+	0x297a85,
+	0x3b9d87,
+	0x2c76c7,
+	0x2979c4,
+	0x2bd946,
+	0x307b85,
+	0x30a3c5,
+	0x3a2a05,
+	0x339407,
+	0x378a05,
+	0x31ddc9,
+	0x234fc5,
+	0x32f404,
+	0x3a81c7,
+	0x341b0e,
+	0x306bc9,
+	0x338749,
+	0x388d86,
+	0x24a608,
+	0x36ae4b,
+	0x2b698c,
+	0x33ea46,
+	0x2e5ac7,
+	0x212245,
+	0x38d20a,
+	0x2b7389,
+	0x209b49,
+	0x259f06,
+	0x300945,
+	0x2edac5,
+	0x3570c9,
+	0x3a2b8b,
+	0x27e286,
+	0x3471c6,
+	0x20de04,
+	0x2943c6,
+	0x24e1c8,
+	0x3c0846,
+	0x215006,
+	0x205fc8,
+	0x2092c7,
+	0x209909,
+	0x211385,
+	0x16fb88,
+	0x21a704,
+	0x2394c4,
+	0x201105,
+	0x3a6649,
+	0x228f87,
+	0x228f8b,
+	0x22b3ca,
+	0x230905,
+	0x4c612842,
+	0x342f07,
+	0x4ca30c08,
+	0x3578c7,
+	0x2c3d45,
+	0x209dca,
+	0xf882,
+	0x2be6cb,
+	0x255e0a,
+	0x22a146,
+	0x216383,
+	0x2a038d,
+	0x3572cc,
+	0x357a4d,
+	0x250545,
+	0x334fc5,
+	0x20db47,
+	0x36c689,
+	0x218606,
+	0x381ac5,
+	0x2d2b88,
+	0x2942c3,
+	0x2fa288,
+	0x2942c8,
+	0x2cb287,
+	0x314808,
+	0x3b49c9,
+	0x374847,
+	0x342707,
+	0x202108,
+	0x2d1c84,
+	0x2d1c87,
+	0x26fdc8,
+	0x355546,
+	0x3b874f,
+	0x226207,
+	0x2eb686,
+	0x2298c5,
+	0x22a8c3,
+	0x381947,
+	0x37cc43,
+	0x252886,
+	0x254006,
+	0x254706,
+	0x298b85,
+	0x26e2c3,
+	0x397cc8,
+	0x37f889,
+	0x3920cb,
+	0x254888,
+	0x255985,
+	0x2584c5,
+	0x4cef6802,
+	0x250089,
+	0x34eec7,
+	0x263c85,
+	0x25ef07,
+	0x260506,
+	0x374345,
+	0x263ecb,
+	0x2662c4,
+	0x26b005,
+	0x26b147,
+	0x27db86,
+	0x27e045,
+	0x289a47,
+	0x28a187,
+	0x2d5104,
+	0x291b8a,
+	0x292048,
+	0x2cee09,
+	0x2a0f05,
+	0x3bf1c6,
+	0x24e38a,
+	0x2be906,
+	0x26f2c7,
+	0x2ceacd,
+	0x2aa349,
+	0x396fc5,
+	0x339f07,
+	0x333448,
+	0x25a5c8,
+	0x332847,
+	0x358246,
+	0x21cb87,
+	0x253c43,
+	0x34b1c4,
+	0x371cc5,
+	0x39d947,
+	0x3a2409,
+	0x231b08,
+	0x34cbc5,
+	0x23bac4,
+	0x254a45,
+	0x256c4d,
+	0x2006c2,
+	0x230386,
+	0x2861c6,
+	0x2e654a,
+	0x3904c6,
+	0x39ab85,
+	0x342445,
+	0x342447,
+	0x3afd0c,
+	0x27b3ca,
+	0x294086,
+	0x28ad05,
+	0x294206,
+	0x294547,
+	0x296886,
+	0x298a8c,
+	0x34e989,
+	0x4d21a187,
+	0x29b745,
+	0x29b746,
+	0x29bcc8,
+	0x246f85,
+	0x2ab085,
+	0x2ab808,
+	0x2aba0a,
+	0x4d6335c2,
+	0x4da14d02,
+	0x2e76c5,
+	0x2eb603,
+	0x243408,
+	0x252403,
+	0x2abc84,
+	0x25240b,
+	0x36b208,
+	0x2daa48,
+	0x4df3b049,
+	0x2afc09,
+	0x2b0746,
+	0x2b1c08,
+	0x2b1e09,
+	0x2b2886,
+	0x2b2a05,
+	0x3944c6,
+	0x2b2f49,
+	0x389347,
+	0x2647c6,
+	0x2de087,
+	0x218487,
+	0x2dd9c4,
+	0x4e34f809,
+	0x2d32c8,
+	0x3ac448,
+	0x3932c7,
+	0x2cd346,
+	0x36c489,
+	0x2ca847,
+	0x32598a,
+	0x358388,
+	0x208387,
+	0x208f86,
+	0x271d8a,
+	0x26fbc8,
+	0x2ed485,
+	0x230685,
+	0x2ef1c7,
+	0x311cc9,
+	0x30150b,
+	0x31a308,
+	0x235049,
+	0x254c87,
+	0x2bd04c,
+	0x2bfccc,
+	0x2bffca,
+	0x2c024c,
+	0x2ca108,
+	0x2ca308,
+	0x2ca504,
+	0x2caa09,
+	0x2cac49,
+	0x2cae8a,
+	0x2cb109,
+	0x2cb447,
+	0x3ba98c,
+	0x23f586,
+	0x2cbf88,
+	0x2be9c6,
+	0x387486,
+	0x396ec7,
+	0x306dc8,
+	0x3445cb,
+	0x28e307,
+	0x250289,
+	0x350b89,
+	0x253507,
+	0x2771c4,
+	0x271c07,
+	0x2fda46,
+	0x21d8c6,
+	0x33c345,
+	0x297248,
+	0x2993c4,
+	0x2993c6,
+	0x27b28b,
+	0x21bac9,
+	0x36c886,
+	0x204bc9,
+	0x339586,
+	0x25f1c8,
+	0x211b83,
+	0x300ac5,
+	0x219b09,
+	0x21da05,
+	0x2fba44,
+	0x27d046,
+	0x2fd385,
+	0x299906,
+	0x310ec7,
+	0x33a986,
+	0x3b134b,
+	0x237587,
+	0x241646,
+	0x354786,
+	0x3b9e46,
+	0x297989,
+	0x25384a,
+	0x2bbb85,
+	0x2202cd,
+	0x2abb06,
+	0x204a86,
+	0x2f3f06,
+	0x22dd45,
+	0x2e6ac7,
+	0x300087,
+	0x2e7dce,
+	0x28cac3,
+	0x2cd309,
+	0x210c89,
+	0x38d607,
+	0x364207,
+	0x2a5bc5,
+	0x2b57c5,
+	0x4e63470f,
+	0x2d5a47,
+	0x2d5c08,
+	0x2d6144,
+	0x2d7106,
+	0x4ea4ea42,
+	0x2da786,
+	0x20c0c6,
+	0x210e4e,
+	0x2fa0ca,
+	0x273b06,
+	0x23398a,
+	0x211689,
+	0x32b385,
+	0x3a4808,
+	0x3bca06,
+	0x306748,
+	0x33aac8,
+	0x2194cb,
+	0x2bd805,
+	0x378a88,
+	0x20610c,
+	0x2c3c07,
+	0x254246,
+	0x2fd1c8,
+	0x3488c8,
+	0x4ee06802,
+	0x23588b,
+	0x2123c9,
+	0x205549,
+	0x2174c7,
+	0x223408,
+	0x4f36bec8,
+	0x38ffcb,
+	0x23edc9,
+	0x338f0d,
+	0x27fa88,
+	0x22b1c8,
+	0x4f6014c2,
+	0x203cc4,
+	0x4fa19302,
+	0x2fe206,
+	0x4fe004c2,
+	0x261b8a,
+	0x2199c6,
+	0x232808,
+	0x2c6f48,
+	0x2b6f06,
+	0x22fe46,
+	0x2f9186,
+	0x2b5a45,
+	0x2443c4,
+	0x50206d04,
+	0x214106,
+	0x29c747,
+	0x50620c47,
+	0x2d644b,
+	0x341ec9,
+	0x33500a,
+	0x2106c4,
+	0x342588,
+	0x26458d,
+	0x2f2489,
+	0x2f26c8,
+	0x2f2d49,
+	0x2f4544,
+	0x245884,
+	0x285cc5,
+	0x320fcb,
+	0x36b186,
+	0x34b905,
+	0x2279c9,
+	0x2bda08,
+	0x210dc4,
+	0x38d389,
+	0x2064c5,
+	0x2c7708,
+	0x342dc7,
+	0x338b48,
+	0x286d86,
+	0x233207,
+	0x29a989,
+	0x224a49,
+	0x38adc5,
+	0x34dfc5,
+	0x50a08402,
+	0x32f1c4,
+	0x2fdd45,
+	0x2ce506,
+	0x33bd05,
+	0x387e47,
+	0x214205,
+	0x27dbc4,
+	0x388e46,
+	0x381b47,
+	0x23d046,
+	0x2c41c5,
+	0x207f48,
+	0x2bdf85,
+	0x211a07,
+	0x214689,
+	0x21bc0a,
+	0x2fc487,
+	0x2fc48c,
+	0x240a86,
+	0x37e349,
+	0x246a45,
+	0x246ec8,
+	0x207c03,
+	0x216d85,
+	0x2fd705,
+	0x282d47,
+	0x50e06ac2,
+	0x22f647,
+	0x2e56c6,
+	0x373b46,
+	0x30bfc6,
+	0x348806,
+	0x206748,
+	0x2a0d05,
+	0x2eb747,
+	0x2eb74d,
+	0x227103,
+	0x227105,
+	0x379347,
+	0x22f988,
+	0x378f05,
+	0x2216c8,
+	0x37ccc6,
+	0x335b87,
+	0x2cbec5,
+	0x2bd886,
+	0x39ce45,
+	0x21c70a,
+	0x2f1346,
+	0x383f47,
+	0x2bca85,
+	0x2f5047,
+	0x2f97c4,
+	0x2fb9c6,
+	0x2fe345,
+	0x32d70b,
+	0x2fd8c9,
+	0x24214a,
+	0x38ae48,
+	0x30e048,
+	0x380a8c,
+	0x3964c7,
+	0x3054c8,
+	0x307f48,
+	0x3084c5,
+	0x311a8a,
+	0x31c449,
+	0x51200d02,
+	0x201886,
+	0x216044,
+	0x216049,
+	0x27d549,
+	0x27e9c7,
+	0x2b4e07,
+	0x2938c9,
+	0x22df48,
+	0x22df4f,
+	0x2e3a06,
+	0x2df14b,
+	0x34b445,
+	0x34b447,
+	0x368849,
+	0x21aa46,
+	0x38d307,
+	0x2e1a45,
+	0x23ae84,
+	0x284fc6,
+	0x2262c4,
+	0x2db107,
+	0x2d6f08,
+	0x51700848,
+	0x301245,
+	0x301387,
+	0x260a09,
+	0x205304,
+	0x24b348,
+	0x51ab7cc8,
+	0x283384,
+	0x23c208,
+	0x332d44,
+	0x22be49,
+	0x351a45,
+	0x51e05082,
+	0x2e3a45,
+	0x310045,
+	0x20fc48,
+	0x23d747,
+	0x52200d42,
+	0x3322c5,
+	0x2d8e46,
+	0x27cb06,
+	0x32f188,
+	0x337d48,
+	0x33bcc6,
+	0x34bb06,
+	0x38c289,
+	0x373a86,
+	0x21a90b,
+	0x2e5f85,
+	0x208a46,
+	0x29e108,
+	0x3a0a06,
+	0x322c46,
+	0x221b8a,
+	0x23b30a,
+	0x2498c5,
+	0x2a0dc7,
+	0x313646,
+	0x52606442,
+	0x379487,
+	0x266cc5,
+	0x24e304,
+	0x24e305,
+	0x2105c6,
+	0x278fc7,
+	0x215dc5,
+	0x23b484,
+	0x2c4788,
+	0x322d05,
+	0x3af347,
+	0x3b6dc5,
+	0x21c645,
+	0x258f84,
+	0x2ee209,
+	0x3079c8,
+	0x263146,
+	0x2b5386,
+	0x345186,
+	0x52b08148,
+	0x308347,
+	0x30874d,
+	0x3090cc,
+	0x3096c9,
+	0x309909,
+	0x52f67742,
+	0x3b6343,
+	0x215ac3,
+	0x2fdb05,
+	0x39da4a,
+	0x32f046,
+	0x30e2c5,
+	0x311084,
+	0x31108b,
+	0x323a8c,
+	0x3244cc,
+	0x3247d5,
+	0x32660d,
+	0x327d0f,
+	0x3280d2,
+	0x32854f,
+	0x328912,
+	0x328d93,
+	0x32924d,
+	0x32980d,
+	0x329b8e,
+	0x32a10e,
+	0x32a94c,
+	0x32ad0c,
+	0x32b14b,
+	0x32b4ce,
+	0x32c612,
+	0x32ee0c,
+	0x32fd90,
+	0x33cd52,
+	0x33d9cc,
+	0x33e08d,
+	0x33e3cc,
+	0x3406d1,
+	0x34734d,
+	0x349e0d,
+	0x34a40a,
+	0x34a68c,
+	0x34af8c,
+	0x34b60c,
+	0x34c20c,
+	0x3523d3,
+	0x352cd0,
+	0x3530d0,
+	0x35398d,
+	0x353f8c,
+	0x354b89,
+	0x35690d,
+	0x356c53,
+	0x3595d1,
+	0x359a13,
+	0x35a0cf,
+	0x35a48c,
+	0x35a78f,
+	0x35ab4d,
+	0x35b14f,
+	0x35b510,
+	0x35bf8e,
+	0x35f88e,
+	0x35fe10,
+	0x36150d,
+	0x361e8e,
+	0x36220c,
+	0x363213,
+	0x3658ce,
+	0x365f50,
+	0x366351,
+	0x36678f,
+	0x366b53,
+	0x3672cd,
+	0x36760f,
+	0x3679ce,
+	0x368090,
+	0x368489,
+	0x369210,
+	0x36980f,
+	0x369e8f,
+	0x36a252,
+	0x36dcce,
+	0x36e7cd,
+	0x36f00d,
+	0x36f34d,
+	0x37078d,
+	0x370acd,
+	0x370e10,
+	0x37120b,
+	0x371a8c,
+	0x371e0c,
+	0x37240c,
+	0x37270e,
+	0x382350,
+	0x384512,
+	0x38498b,
+	0x384e8e,
+	0x38520e,
+	0x386dce,
+	0x38724b,
+	0x53388016,
+	0x38988d,
+	0x38a014,
+	0x38b04d,
+	0x38cd55,
+	0x38e30d,
+	0x38ec8f,
+	0x38f4cf,
+	0x39238f,
+	0x39274e,
+	0x392ccd,
+	0x394091,
+	0x39668c,
+	0x39698c,
+	0x396c8b,
+	0x39710c,
+	0x3974cf,
+	0x397892,
+	0x39824d,
+	0x39974c,
+	0x399bcc,
+	0x399ecd,
+	0x39a20f,
+	0x39a5ce,
+	0x39d70c,
+	0x39dccd,
+	0x39e00b,
+	0x39e9cc,
+	0x39f2cd,
+	0x39f60e,
+	0x39f989,
+	0x3a1353,
+	0x3a188d,
+	0x3a1bcd,
+	0x3a21cc,
+	0x3a264e,
+	0x3a37cf,
+	0x3a3b8c,
+	0x3a3e8d,
+	0x3a41cf,
+	0x3a458c,
+	0x3a508c,
+	0x3a550c,
+	0x3a580c,
+	0x3a5ecd,
+	0x3a6212,
+	0x3a688c,
+	0x3a6b8c,
+	0x3a6e91,
+	0x3a72cf,
+	0x3a768f,
+	0x3a7a53,
+	0x3a8a0e,
+	0x3a8d8f,
+	0x3a914c,
+	0x537a948e,
+	0x3a980f,
+	0x3a9bd6,
+	0x3aaa92,
+	0x3acf0c,
+	0x3ada0f,
+	0x3ae08d,
+	0x3ae3cf,
+	0x3ae78c,
+	0x3aea8d,
+	0x3aedcd,
+	0x3b084e,
+	0x3b228c,
+	0x3b258c,
+	0x3b2890,
+	0x3b57d1,
+	0x3b5c0b,
+	0x3b5f4c,
+	0x3b624e,
+	0x3b7211,
+	0x3b764e,
+	0x3b79cd,
+	0x3bc7cb,
+	0x3bd88f,
+	0x3be394,
+	0x210642,
+	0x210642,
+	0x204d43,
+	0x210642,
+	0x204d43,
+	0x210642,
+	0x2009c2,
+	0x394505,
+	0x3b6f0c,
+	0x210642,
+	0x210642,
+	0x2009c2,
+	0x210642,
+	0x29c345,
+	0x21bc05,
+	0x210642,
+	0x210642,
+	0x201102,
+	0x29c345,
+	0x326b49,
+	0x3592cc,
+	0x210642,
+	0x210642,
+	0x210642,
+	0x210642,
+	0x394505,
+	0x210642,
+	0x210642,
+	0x210642,
+	0x210642,
+	0x201102,
+	0x326b49,
+	0x210642,
+	0x210642,
+	0x210642,
+	0x21bc05,
+	0x210642,
+	0x21bc05,
+	0x3592cc,
+	0x3b6f0c,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x208e83,
+	0x201a03,
+	0xe008,
+	0x64344,
+	0xe03,
+	0xc63c8,
+	0x207102,
+	0x5460f882,
+	0x24ac83,
+	0x23f044,
+	0x2020c3,
+	0x39e544,
+	0x23a1c6,
+	0x216f83,
+	0x304704,
+	0x2d7b05,
+	0x28cac3,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0x243d0a,
+	0x3821c6,
+	0x38558c,
+	0x16fb88,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x229443,
+	0x20c0c6,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0xac408,
+	0x131645,
+	0x35f09,
+	0x35c2,
+	0x55b95645,
+	0x26547,
+	0xba9c8,
+	0x14b0e,
+	0x90212,
+	0x10a78b,
+	0x1398c6,
+	0x55edf485,
+	0x562df48c,
+	0x148f87,
+	0x36dc7,
+	0x15000a,
+	0x46690,
+	0x13b345,
+	0xb610b,
+	0xf8d08,
+	0x3e607,
+	0x3af8b,
+	0x57f89,
+	0x185a87,
+	0x81a87,
+	0x7e4c7,
+	0x3e546,
+	0xdd088,
+	0x56824386,
+	0xb084d,
+	0x14f9d0,
+	0x56c0c182,
+	0x8ca48,
+	0x4f450,
+	0x15090c,
+	0x5735cd4d,
+	0x64a88,
+	0x721c7,
+	0x76f09,
+	0x5d3c6,
+	0x9bec8,
+	0x351c2,
+	0xa808a,
+	0x293c7,
+	0x43b87,
+	0xac7c9,
+	0xae208,
+	0x8b205,
+	0xd538e,
+	0x5c4e,
+	0x17a8f,
+	0x18009,
+	0x164ec9,
+	0x15d38b,
+	0x7ba8f,
+	0xee40c,
+	0xa88cb,
+	0xc8b48,
+	0xd6347,
+	0xdbe88,
+	0xfe78b,
+	0xff34c,
+	0x10038c,
+	0x1037cc,
+	0x10b54d,
+	0x3ef48,
+	0xd2942,
+	0x134649,
+	0x195d8b,
+	0xcd546,
+	0x11f30b,
+	0xe118a,
+	0xe1d45,
+	0xe67d0,
+	0xe9f06,
+	0x16b986,
+	0x11205,
+	0x10fc48,
+	0xefd07,
+	0xeffc7,
+	0x8d047,
+	0xfe04a,
+	0xba84a,
+	0x86286,
+	0x99d0d,
+	0x8f148,
+	0x586c8,
+	0x58ec9,
+	0xbc8c5,
+	0x1ad70c,
+	0x10b74b,
+	0x19e604,
+	0x105e09,
+	0x106046,
+	0x16546,
+	0x2642,
+	0x12cf06,
+	0xc68b,
+	0x112707,
+	0x4542,
+	0xd1305,
+	0x2e604,
+	0x8c1,
+	0x52d03,
+	0x56764886,
+	0x9c243,
+	0x7b02,
+	0x293c4,
+	0x242,
+	0x86644,
+	0xf82,
+	0x6502,
+	0x3302,
+	0xd342,
+	0x1382,
+	0xdf482,
+	0x8c2,
+	0x22902,
+	0x40e82,
+	0x1a442,
+	0x4c82,
+	0x234c2,
+	0x3cac3,
+	0x6b82,
+	0x1842,
+	0x7602,
+	0x6b02,
+	0x17202,
+	0x36d02,
+	0x206c2,
+	0xc442,
+	0x1c82,
+	0x942,
+	0x55783,
+	0x4182,
+	0x2542,
+	0xb8042,
+	0x9a02,
+	0x282,
+	0x2942,
+	0xd842,
+	0xc202,
+	0x4a82,
+	0x182842,
+	0x745c2,
+	0xe82,
+	0x8e83,
+	0x1942,
+	0x6802,
+	0x982,
+	0x5b82,
+	0x18ad45,
+	0x7082,
+	0x2fa42,
+	0x13ebc3,
+	0x482,
+	0xb282,
+	0xa02,
+	0x2502,
+	0x6742,
+	0xd42,
+	0xc2,
+	0x2642,
+	0x35dc5,
+	0x17f087,
+	0x20d0c3,
+	0x207102,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x2046c3,
+	0x229443,
+	0x208e83,
+	0x200e03,
+	0x201a03,
+	0x29c283,
+	0x10c3,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x28cac3,
+	0x208e83,
+	0x200e03,
+	0x1a3443,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x200041,
+	0x28cac3,
+	0x208e83,
+	0x21b543,
+	0x201a03,
+	0x146f44,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x26eac3,
+	0x21b583,
+	0x207b03,
+	0x289303,
+	0x219983,
+	0x241503,
+	0x323043,
+	0x231604,
+	0x208e83,
+	0x201a03,
+	0x202443,
+	0x333cc4,
+	0x251183,
+	0x3ec3,
+	0x3c0943,
+	0x20a3c8,
+	0x271dc4,
+	0x2cf30a,
+	0x2bed86,
+	0x112384,
+	0x3a7ec7,
+	0x226cca,
+	0x2e38c9,
+	0x3b7f87,
+	0x3be84a,
+	0x39c783,
+	0x2e774b,
+	0x28b689,
+	0x345285,
+	0x2da5c7,
+	0xf882,
+	0x238543,
+	0x21a447,
+	0x2379c5,
+	0x2ca689,
+	0x23cac3,
+	0x2bd606,
+	0x2c9883,
+	0xe5743,
+	0x110646,
+	0xd386,
+	0x16f07,
+	0x21af86,
+	0x222985,
+	0x3a3147,
+	0x2de5c7,
+	0x59b23043,
+	0x33dc07,
+	0x374703,
+	0x3b5045,
+	0x231604,
+	0x231308,
+	0x366fcc,
+	0x2b4fc5,
+	0x2aa4c6,
+	0x21a307,
+	0x39b687,
+	0x23dfc7,
+	0x23f108,
+	0x30f50f,
+	0x2e3b05,
+	0x24ad87,
+	0x33acc7,
+	0x2abdca,
+	0x2d29c9,
+	0x39e6c5,
+	0x31078a,
+	0xc546,
+	0x2c9905,
+	0x3703c4,
+	0x2c6e86,
+	0x300e07,
+	0x2d2847,
+	0x306908,
+	0x217645,
+	0x2378c6,
+	0x214f85,
+	0x2e8105,
+	0x21ba04,
+	0x2b6e07,
+	0x20658a,
+	0x34d908,
+	0x367f06,
+	0x29443,
+	0x2e4505,
+	0x26bf86,
+	0x3babc6,
+	0x211106,
+	0x28cac3,
+	0x3984c7,
+	0x33ac45,
+	0x208e83,
+	0x2e144d,
+	0x200e03,
+	0x306a08,
+	0x3b3644,
+	0x310945,
+	0x2abcc6,
+	0x23f386,
+	0x208947,
+	0x2aed47,
+	0x26f045,
+	0x201a03,
+	0x20a147,
+	0x277089,
+	0x36bbc9,
+	0x227f4a,
+	0x235d82,
+	0x3b5004,
+	0x2eb2c4,
+	0x344487,
+	0x22f508,
+	0x2f0889,
+	0x226fc9,
+	0x2f1ac7,
+	0x28bb46,
+	0xf3006,
+	0x2f4544,
+	0x2f4b4a,
+	0x2f8248,
+	0x2f9049,
+	0x2c4bc6,
+	0x2b9545,
+	0x34d7c8,
+	0x2cdc4a,
+	0x20ec43,
+	0x333e46,
+	0x2f1bc7,
+	0x225f45,
+	0x3b3505,
+	0x3a04c3,
+	0x231944,
+	0x230645,
+	0x28a287,
+	0x307b05,
+	0x2ef086,
+	0x103d45,
+	0x273bc3,
+	0x273bc9,
+	0x26c04c,
+	0x2a2b4c,
+	0x2d8648,
+	0x284187,
+	0x301e08,
+	0x30214a,
+	0x302fcb,
+	0x28b7c8,
+	0x23ec48,
+	0x23f486,
+	0x345045,
+	0x34624a,
+	0x228cc5,
+	0x205082,
+	0x2cbd87,
+	0x29f806,
+	0x368d45,
+	0x304209,
+	0x281405,
+	0x3716c5,
+	0x218ac9,
+	0x388a46,
+	0x204448,
+	0x332643,
+	0x217186,
+	0x27cf86,
+	0x311f05,
+	0x311f09,
+	0x2f0fc9,
+	0x27a3c7,
+	0x114204,
+	0x314207,
+	0x226ec9,
+	0x23f805,
+	0x444c8,
+	0x39c485,
+	0x341a05,
+	0x3911c9,
+	0x20cac2,
+	0x2628c4,
+	0x200882,
+	0x204182,
+	0x30e985,
+	0x312108,
+	0x2bc805,
+	0x2cb603,
+	0x2cb605,
+	0x2da983,
+	0x2162c2,
+	0x383c84,
+	0x2fc183,
+	0x20cb42,
+	0x341504,
+	0x2ec043,
+	0x206682,
+	0x28cfc3,
+	0x295384,
+	0x2eae03,
+	0x2f6584,
+	0x204242,
+	0x221383,
+	0x219c43,
+	0x206182,
+	0x332182,
+	0x2f0e09,
+	0x204382,
+	0x290d84,
+	0x201f82,
+	0x34d644,
+	0x28bb04,
+	0x2c0d84,
+	0x202642,
+	0x23e882,
+	0x229703,
+	0x302d83,
+	0x24a9c4,
+	0x28a404,
+	0x2f1d44,
+	0x2f8404,
+	0x315743,
+	0x224183,
+	0x20c4c4,
+	0x315584,
+	0x315d86,
+	0x232ec2,
+	0x20f882,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x207102,
+	0x39c783,
+	0x238543,
+	0x23cac3,
+	0x201843,
+	0x323043,
+	0x231604,
+	0x2f10c4,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0x2f5204,
+	0x31fe83,
+	0x2c37c3,
+	0x359e44,
+	0x39c286,
+	0x211c43,
+	0x36dc7,
+	0x21f243,
+	0x202103,
+	0x2b8d83,
+	0x263a43,
+	0x229443,
+	0x3321c5,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x216403,
+	0x239043,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x255783,
+	0x208e83,
+	0x2464c4,
+	0x1a3443,
+	0x201a03,
+	0x25b0c4,
+	0x2c6c85,
+	0x36dc7,
+	0x20f882,
+	0x201742,
+	0x207b02,
+	0x204d42,
+	0xe03,
+	0x200442,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x215443,
+	0x286644,
+	0x16fb88,
+	0x238543,
+	0x200e03,
+	0x10c3,
+	0x13e8c4,
+	0x252044,
+	0x16fb88,
+	0x238543,
+	0x253384,
+	0x231604,
+	0x200e03,
+	0x2014c2,
+	0x201a03,
+	0x20c843,
+	0x31944,
+	0x355685,
+	0x205082,
+	0x3156c3,
+	0x145c49,
+	0xdfb46,
+	0x19c588,
+	0x207102,
+	0x16fb88,
+	0x20f882,
+	0x23cac3,
+	0x323043,
+	0x200942,
+	0xe03,
+	0x201a03,
+	0x207102,
+	0x1bea07,
+	0x1370c9,
+	0x3dc3,
+	0x16fb88,
+	0xd303,
+	0x5db4c807,
+	0x38543,
+	0x1788,
+	0x23cac3,
+	0x323043,
+	0x186c46,
+	0x255783,
+	0xe8888,
+	0xc9148,
+	0x3fbc6,
+	0x28cac3,
+	0xd30c8,
+	0x187ec3,
+	0xe8a85,
+	0x3ccc7,
+	0x8e83,
+	0x63c3,
+	0x1a03,
+	0xcb02,
+	0x17044a,
+	0x10ea43,
+	0x313e44,
+	0x10f30b,
+	0x10f8c8,
+	0x95e02,
+	0x207102,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x2de944,
+	0x323043,
+	0x255783,
+	0x28cac3,
+	0x208e83,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x229443,
+	0x208e83,
+	0x201a03,
+	0x236903,
+	0x215443,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x10c3,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x229443,
+	0x208e83,
+	0x201a03,
+	0x21a902,
+	0x200141,
+	0x207102,
+	0x200001,
+	0x327e02,
+	0x16fb88,
+	0x224c85,
+	0x2008c1,
+	0x38543,
+	0x201781,
+	0x200301,
+	0x200081,
+	0x2ac602,
+	0x37cc44,
+	0x394483,
+	0x200181,
+	0x200401,
+	0x200041,
+	0x200101,
+	0x2ea547,
+	0x2ec54f,
+	0x2fbc06,
+	0x200281,
+	0x33e906,
+	0x200801,
+	0x200981,
+	0x306f8e,
+	0x200441,
+	0x201a03,
+	0x204101,
+	0x258885,
+	0x20cb02,
+	0x3a03c5,
+	0x200341,
+	0x200741,
+	0x2002c1,
+	0x205082,
+	0x2000c1,
+	0x200201,
+	0x200c81,
+	0x2005c1,
+	0x204541,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x221f43,
+	0x238543,
+	0x323043,
+	0x95d48,
+	0x28cac3,
+	0x208e83,
+	0x31483,
+	0x201a03,
+	0x14eec08,
+	0x16308,
+	0x16fb88,
+	0xe03,
+	0x8e444,
+	0x4ec04,
+	0x14eec0a,
+	0x16fb88,
+	0x1a3443,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x208e83,
+	0x201a03,
+	0x203ec3,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x2de944,
+	0x201a03,
+	0x22d585,
+	0x35f2c4,
+	0x238543,
+	0x208e83,
+	0x201a03,
+	0x1f40a,
+	0xf1844,
+	0x118b06,
+	0x20f882,
+	0x238543,
+	0x23adc9,
+	0x23cac3,
+	0x375449,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x2f4348,
+	0x22dc07,
+	0x355685,
+	0xb4c8,
+	0x1bea07,
+	0x2f78a,
+	0x178ccb,
+	0x13c507,
+	0x4a4c8,
+	0x14f64a,
+	0x19dc8,
+	0x1370c9,
+	0x30507,
+	0x742c7,
+	0x19bf08,
+	0x1788,
+	0x4b04f,
+	0x1c045,
+	0x1a87,
+	0x186c46,
+	0x41287,
+	0x4a786,
+	0xe8888,
+	0x96fc6,
+	0x188847,
+	0x178809,
+	0x1bf307,
+	0xd81c9,
+	0xbcbc9,
+	0xc6a06,
+	0xc9148,
+	0xc7845,
+	0x57b0a,
+	0xd30c8,
+	0x187ec3,
+	0xdad48,
+	0x3ccc7,
+	0x131f45,
+	0x787d0,
+	0x63c3,
+	0x1a3443,
+	0x125807,
+	0x1cc85,
+	0xf02c8,
+	0xe385,
+	0x10ea43,
+	0x16d5c8,
+	0x12906,
+	0x198909,
+	0xb2007,
+	0x145f0b,
+	0x180884,
+	0x104f04,
+	0x10f30b,
+	0x10f8c8,
+	0x110547,
+	0x131645,
+	0x238543,
+	0x23cac3,
+	0x21b583,
+	0x201a03,
+	0x20c743,
+	0x323043,
+	0x1a3443,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x15d4cb,
+	0x207102,
+	0x20f882,
+	0x201a03,
+	0x16fb88,
+	0x207102,
+	0x20f882,
+	0x207b02,
+	0x200942,
+	0x20b302,
+	0x208e83,
+	0x200442,
+	0x207102,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x207b02,
+	0x323043,
+	0x255783,
+	0x28cac3,
+	0x21bf84,
+	0x208e83,
+	0x21eb43,
+	0x201a03,
+	0x313e44,
+	0x202443,
+	0x323043,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x200e03,
+	0x201a03,
+	0x3ad3c7,
+	0x238543,
+	0x282c07,
+	0x2d7f86,
+	0x20e583,
+	0x207603,
+	0x323043,
+	0x204c03,
+	0x231604,
+	0x2d5204,
+	0x30e706,
+	0x20bd43,
+	0x208e83,
+	0x201a03,
+	0x22d585,
+	0x321704,
+	0x350503,
+	0x39b4c3,
+	0x2cbd87,
+	0x342d45,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x99807,
+	0x203402,
+	0x28f283,
+	0x205403,
+	0x39c783,
+	0x65e38543,
+	0x206902,
+	0x23cac3,
+	0x2020c3,
+	0x323043,
+	0x231604,
+	0x3797c3,
+	0x2e3b03,
+	0x28cac3,
+	0x21bf84,
+	0x6620ea42,
+	0x208e83,
+	0x201a03,
+	0x206683,
+	0x22e603,
+	0x21a902,
+	0x202443,
+	0x16fb88,
+	0x323043,
+	0x10c3,
+	0x31f944,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x240244,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x3a2e44,
+	0x20f644,
+	0x20c0c6,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0x29f806,
+	0x4504b,
+	0x24386,
+	0x3204a,
+	0x112d0a,
+	0x16fb88,
+	0x214f44,
+	0x67638543,
+	0x39c744,
+	0x23cac3,
+	0x259004,
+	0x323043,
+	0x210543,
+	0x28cac3,
+	0x208e83,
+	0x1a3443,
+	0x201a03,
+	0xbac3,
+	0x3381cb,
+	0x3af10a,
+	0x3bf84c,
+	0xe4288,
+	0x207102,
+	0x20f882,
+	0x207b02,
+	0x2b13c5,
+	0x231604,
+	0x204a82,
+	0x28cac3,
+	0x20f644,
+	0x204d42,
+	0x200442,
+	0x20d2c2,
+	0x21a902,
+	0x19c783,
+	0x35f42,
+	0x2b3509,
+	0x2f7148,
+	0x351689,
+	0x2410c9,
+	0x350f0a,
+	0x26080a,
+	0x2127c2,
+	0x222902,
+	0xf882,
+	0x238543,
+	0x229682,
+	0x24af46,
+	0x369d02,
+	0x206a42,
+	0x37904e,
+	0x2213ce,
+	0x284b47,
+	0x208e07,
+	0x2ec8c2,
+	0x23cac3,
+	0x323043,
+	0x200042,
+	0x200942,
+	0x31603,
+	0x23980f,
+	0x20b542,
+	0x2dd887,
+	0x2b4a87,
+	0x2b7e87,
+	0x31a4cc,
+	0x2c448c,
+	0x223984,
+	0x285b0a,
+	0x221302,
+	0x209a02,
+	0x2c0884,
+	0x21f502,
+	0x2ca102,
+	0x2c46c4,
+	0x21a602,
+	0x200282,
+	0x11a83,
+	0x297047,
+	0x2beb05,
+	0x20d842,
+	0x239784,
+	0x382842,
+	0x2e3008,
+	0x208e83,
+	0x203488,
+	0x203cc2,
+	0x223b45,
+	0x38dbc6,
+	0x201a03,
+	0x207082,
+	0x2f0ac7,
+	0xcb02,
+	0x2797c5,
+	0x358b85,
+	0x209642,
+	0x20fd02,
+	0x2cf9ca,
+	0x26eeca,
+	0x21b9c2,
+	0x2a4dc4,
+	0x2002c2,
+	0x3b4ec8,
+	0x20d582,
+	0x315b08,
+	0x30ab47,
+	0x30ba09,
+	0x203442,
+	0x310e45,
+	0x3044c5,
+	0x21770b,
+	0x2d054c,
+	0x237348,
+	0x321b08,
+	0x232ec2,
+	0x208a02,
+	0x207102,
+	0x16fb88,
+	0x20f882,
+	0x238543,
+	0x207b02,
+	0x204d42,
+	0xe03,
+	0x200442,
+	0x201a03,
+	0x20d2c2,
+	0x207102,
+	0x68a0f882,
+	0x68f23043,
+	0x211a83,
+	0x204a82,
+	0x208e83,
+	0x391783,
+	0x201a03,
+	0x2ef783,
+	0x37f186,
+	0x1615443,
+	0x16fb88,
+	0x11205,
+	0xae90d,
+	0xacc8a,
+	0x6e487,
+	0x69601e02,
+	0x69a00242,
+	0x69e00bc2,
+	0x6a200702,
+	0x6a60b5c2,
+	0x6aa01382,
+	0x36dc7,
+	0x6ae0f882,
+	0x6b20c8c2,
+	0x6b604842,
+	0x6ba04c82,
+	0x2213c3,
+	0x18ec4,
+	0x2298c3,
+	0x6be1d882,
+	0x6c200182,
+	0x53c47,
+	0x6c60a442,
+	0x6ca00782,
+	0x6ce01bc2,
+	0x6d205e82,
+	0x6d601c82,
+	0x6da00942,
+	0xc2845,
+	0x23ef43,
+	0x281a04,
+	0x6de1f502,
+	0x6e205242,
+	0x6e603582,
+	0x17d50b,
+	0x6ea01fc2,
+	0x6f253442,
+	0x6f604a82,
+	0x6fa0b302,
+	0x6fe14702,
+	0x70200802,
+	0x70614642,
+	0x70a745c2,
+	0x70e0ea42,
+	0x71204802,
+	0x71604d42,
+	0x71a03382,
+	0x71e08682,
+	0x7224d382,
+	0x1a3284,
+	0x35efc3,
+	0x72604f82,
+	0x72a10902,
+	0x72e11542,
+	0x73201f02,
+	0x73600442,
+	0x73a0cb42,
+	0x15d647,
+	0x73e04102,
+	0x74204142,
+	0x7460d2c2,
+	0x74a21382,
+	0x1ad70c,
+	0x74e2a202,
+	0x75245542,
+	0x75605942,
+	0x75a06442,
+	0x75e0c402,
+	0x76260982,
+	0x76600202,
+	0x76a16fc2,
+	0x76e7d302,
+	0x772610c2,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x12143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x6ef797c3,
+	0x212143,
+	0x332244,
+	0x2f7046,
+	0x2f9a03,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x244949,
+	0x235f42,
+	0x26c783,
+	0x2bcec3,
+	0x20fbc5,
+	0x2020c3,
+	0x3797c3,
+	0x212143,
+	0x20c0c3,
+	0x248d43,
+	0x242989,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x235f42,
+	0x235f42,
+	0x3797c3,
+	0x212143,
+	0x77a38543,
+	0x23cac3,
+	0x20a6c3,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x16fb88,
+	0x20f882,
+	0x238543,
+	0x208e83,
+	0x201a03,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x28cac3,
+	0x208e83,
+	0xe03,
+	0x201a03,
+	0x252044,
+	0x20f882,
+	0x238543,
+	0x345903,
+	0x23cac3,
+	0x253384,
+	0x21b583,
+	0x323043,
+	0x231604,
+	0x255783,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x20c843,
+	0x355685,
+	0x248d43,
+	0x202443,
+	0xe03,
+	0x20f882,
+	0x238543,
+	0x3797c3,
+	0x208e83,
+	0x201a03,
+	0x207102,
+	0x39c783,
+	0x16fb88,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x23a1c6,
+	0x231604,
+	0x255783,
+	0x21bf84,
+	0x208e83,
+	0x201a03,
+	0x221483,
+	0x238543,
+	0x23cac3,
+	0x208e83,
+	0x201a03,
+	0x1442047,
+	0x238543,
+	0x24386,
+	0x23cac3,
+	0x323043,
+	0xe5586,
+	0x208e83,
+	0x201a03,
+	0x31dc48,
+	0x321949,
+	0x330189,
+	0x33bb08,
+	0x38fb48,
+	0x38fb49,
+	0x24558d,
+	0x24dd8f,
+	0x2f53d0,
+	0x35648d,
+	0x37210c,
+	0x39064b,
+	0xba9c8,
+	0xac605,
+	0x207102,
+	0x342b85,
+	0x200243,
+	0x7ae0f882,
+	0x23cac3,
+	0x323043,
+	0x2d8c47,
+	0x263a43,
+	0x28cac3,
+	0x208e83,
+	0x21b543,
+	0x217e03,
+	0x200e03,
+	0x201a03,
+	0x3821c6,
+	0x205082,
+	0x202443,
+	0x16fb88,
+	0x207102,
+	0x39c783,
+	0x20f882,
+	0x238543,
+	0x23cac3,
+	0x323043,
+	0x231604,
+	0x28cac3,
+	0x208e83,
+	0x201a03,
+	0x215443,
+	0x106904,
+	0x15217c6,
+	0x207102,
+	0x20f882,
+	0x323043,
+	0x28cac3,
+	0x201a03,
+}
+
+// children is the list of nodes' children, the parent's wildcard bit and the
+// parent's node type. If a node has no children then their children index
+// will be in the range [0, 6), depending on the wildcard bit and node type.
+//
+// The layout within the uint32, from MSB to LSB, is:
+//	[ 1 bits] unused
+//	[ 1 bits] wildcard bit
+//	[ 2 bits] node type
+//	[14 bits] high nodes index (exclusive) of children
+//	[14 bits] low nodes index (inclusive) of children
+var children = [...]uint32{
+	0x0,
+	0x10000000,
+	0x20000000,
+	0x40000000,
+	0x50000000,
+	0x60000000,
+	0x186c615,
+	0x187061b,
+	0x189461c,
+	0x19f0625,
+	0x1a0467c,
+	0x1a18681,
+	0x1a2c686,
+	0x1a4c68b,
+	0x1a50693,
+	0x1a68694,
+	0x1a9069a,
+	0x1a946a4,
+	0x1aac6a5,
+	0x1ab06ab,
+	0x1ab46ac,
+	0x1af06ad,
+	0x1af46bc,
+	0x21afc6bd,
+	0x1b446bf,
+	0x1b486d1,
+	0x1b686d2,
+	0x1b7c6da,
+	0x1b806df,
+	0x1bb06e0,
+	0x1bcc6ec,
+	0x1bf46f3,
+	0x1c006fd,
+	0x1c04700,
+	0x1c9c701,
+	0x1cb0727,
+	0x1cc472c,
+	0x1cf4731,
+	0x1d0473d,
+	0x1d18741,
+	0x1d3c746,
+	0x1e7474f,
+	0x1e7879d,
+	0x1ee479e,
+	0x1f507b9,
+	0x1f687d4,
+	0x1f7c7da,
+	0x1f847df,
+	0x1f987e1,
+	0x1f9c7e6,
+	0x1fb87e7,
+	0x20047ee,
+	0x2020801,
+	0x2024808,
+	0x2028809,
+	0x204480a,
+	0x2080811,
+	0x62084820,
+	0x209c821,
+	0x20b4827,
+	0x20b882d,
+	0x20c882e,
+	0x2178832,
+	0x217c85e,
+	0x2218c85f,
+	0x22190863,
+	0x22194864,
+	0x21cc865,
+	0x21d0873,
+	0x2658874,
+	0x226f8996,
+	0x226fc9be,
+	0x227009bf,
+	0x2270c9c0,
+	0x227109c3,
+	0x2271c9c4,
+	0x227209c7,
+	0x227249c8,
+	0x227289c9,
+	0x2272c9ca,
+	0x227309cb,
+	0x2273c9cc,
+	0x227409cf,
+	0x2274c9d0,
+	0x227509d3,
+	0x227549d4,
+	0x227589d5,
+	0x227649d6,
+	0x227689d9,
+	0x2276c9da,
+	0x227709db,
+	0x27749dc,
+	0x227789dd,
+	0x227849de,
+	0x227889e1,
+	0x27909e2,
+	0x27cc9e4,
+	0x227ec9f3,
+	0x227f09fb,
+	0x227f49fc,
+	0x27f89fd,
+	0x227fc9fe,
+	0x28009ff,
+	0x281ca00,
+	0x2834a07,
+	0x2838a0d,
+	0x2848a0e,
+	0x2854a12,
+	0x2888a15,
+	0x288ca22,
+	0x28a0a23,
+	0x228a8a28,
+	0x2968a2a,
+	0x2296ca5a,
+	0x2974a5b,
+	0x2978a5d,
+	0x2990a5e,
+	0x29a4a64,
+	0x29cca69,
+	0x29eca73,
+	0x2a1ca7b,
+	0x2a44a87,
+	0x2a48a91,
+	0x2a6ca92,
+	0x2a70a9b,
+	0x2a84a9c,
+	0x2a88aa1,
+	0x2a8caa2,
+	0x2aacaa3,
+	0x2ac8aab,
+	0x2accab2,
+	0x22ad0ab3,
+	0x2ad4ab4,
+	0x2ad8ab5,
+	0x2ae8ab6,
+	0x2aecaba,
+	0x2b64abb,
+	0x2b68ad9,
+	0x2b84ada,
+	0x2b94ae1,
+	0x2ba8ae5,
+	0x2bc0aea,
+	0x2bd8af0,
+	0x2bf0af6,
+	0x2bf4afc,
+	0x2c0cafd,
+	0x2c28b03,
+	0x2c48b0a,
+	0x2c60b12,
+	0x2cc0b18,
+	0x2cdcb30,
+	0x2ce4b37,
+	0x2ce8b39,
+	0x2cfcb3a,
+	0x2d40b3f,
+	0x2dc0b50,
+	0x2decb70,
+	0x2df0b7b,
+	0x2df8b7c,
+	0x2e18b7e,
+	0x2e1cb86,
+	0x2e40b87,
+	0x2e48b90,
+	0x2e84b92,
+	0x2ec8ba1,
+	0x2eccbb2,
+	0x2f34bb3,
+	0x2f38bcd,
+	0x22f3cbce,
+	0x22f40bcf,
+	0x22f50bd0,
+	0x22f54bd4,
+	0x22f58bd5,
+	0x22f5cbd6,
+	0x22f60bd7,
+	0x2f78bd8,
+	0x2f9cbde,
+	0x2fbcbe7,
+	0x3580bef,
+	0x358cd60,
+	0x35acd63,
+	0x3768d6b,
+	0x3838dda,
+	0x38a8e0e,
+	0x3900e2a,
+	0x39e8e40,
+	0x3a40e7a,
+	0x3a7ce90,
+	0x3b78e9f,
+	0x3c44ede,
+	0x3cdcf11,
+	0x3d6cf37,
+	0x3dd0f5b,
+	0x4008f74,
+	0x40c1002,
+	0x418d030,
+	0x41d9063,
+	0x4261076,
+	0x429d098,
+	0x42ed0a7,
+	0x43650bb,
+	0x643690d9,
+	0x6436d0da,
+	0x643710db,
+	0x43ed0dc,
+	0x44490fb,
+	0x44c5112,
+	0x453d131,
+	0x45bd14f,
+	0x462916f,
+	0x475518a,
+	0x47ad1d5,
+	0x647b11eb,
+	0x48491ec,
+	0x48d1212,
+	0x491d234,
+	0x4985247,
+	0x4a2d261,
+	0x4af528b,
+	0x4b5d2bd,
+	0x4c712d7,
+	0x64c7531c,
+	0x64c7931d,
+	0x4cd531e,
+	0x4d31335,
+	0x4dc134c,
+	0x4e3d370,
+	0x4e8138f,
+	0x4f653a0,
+	0x4f993d9,
+	0x4ff93e6,
+	0x506d3fe,
+	0x50f541b,
+	0x513543d,
+	0x51a544d,
+	0x651a9469,
+	0x651ad46a,
+	0x251b146b,
+	0x51c946c,
+	0x51e5472,
+	0x5229479,
+	0x523948a,
+	0x525148e,
+	0x52c9494,
+	0x52d14b2,
+	0x52e54b4,
+	0x53014b9,
+	0x532d4c0,
+	0x53314cb,
+	0x53394cc,
+	0x534d4ce,
+	0x53694d3,
+	0x53754da,
+	0x537d4dd,
+	0x53b94df,
+	0x53cd4ee,
+	0x53d54f3,
+	0x53e14f5,
+	0x53e94f8,
+	0x540d4fa,
+	0x5431503,
+	0x544950c,
+	0x544d512,
+	0x5455513,
+	0x5459515,
+	0x54c1516,
+	0x54c5530,
+	0x54e9531,
+	0x550d53a,
+	0x5529543,
+	0x553954a,
+	0x554d54e,
+	0x5551553,
+	0x5559554,
+	0x556d556,
+	0x557d55b,
+	0x558155f,
+	0x559d560,
+	0x5e2d567,
+	0x5e6578b,
+	0x5e91799,
+	0x5ead7a4,
+	0x5ecd7ab,
+	0x5eed7b3,
+	0x5f317bb,
+	0x5f397cc,
+	0x25f3d7ce,
+	0x25f417cf,
+	0x5f497d0,
+	0x60c17d2,
+	0x260c5830,
+	0x260d5831,
+	0x260dd835,
+	0x260e9837,
+	0x60ed83a,
+	0x60f183b,
+	0x611983c,
+	0x6141846,
+	0x6145850,
+	0x617d851,
+	0x619985f,
+	0x6cf1866,
+	0x6cf5b3c,
+	0x6cf9b3d,
+	0x26cfdb3e,
+	0x6d01b3f,
+	0x26d05b40,
+	0x6d09b41,
+	0x26d15b42,
+	0x6d19b45,
+	0x6d1db46,
+	0x26d21b47,
+	0x6d25b48,
+	0x26d2db49,
+	0x6d31b4b,
+	0x6d35b4c,
+	0x26d45b4d,
+	0x6d49b51,
+	0x6d4db52,
+	0x6d51b53,
+	0x6d55b54,
+	0x26d59b55,
+	0x6d5db56,
+	0x6d61b57,
+	0x6d65b58,
+	0x6d69b59,
+	0x26d71b5a,
+	0x6d75b5c,
+	0x6d79b5d,
+	0x6d7db5e,
+	0x26d81b5f,
+	0x6d85b60,
+	0x26d8db61,
+	0x26d91b63,
+	0x6dadb64,
+	0x6dbdb6b,
+	0x6e01b6f,
+	0x6e05b80,
+	0x6e29b81,
+	0x6e2db8a,
+	0x6e31b8b,
+	0x6fbdb8c,
+	0x26fc1bef,
+	0x26fc9bf0,
+	0x26fcdbf2,
+	0x26fd1bf3,
+	0x6fd9bf4,
+	0x70b5bf6,
+	0x270b9c2d,
+	0x70bdc2e,
+	0x70e9c2f,
+	0x70edc3a,
+	0x7111c3b,
+	0x711dc44,
+	0x713dc47,
+	0x7141c4f,
+	0x7179c50,
+	0x7411c5e,
+	0x74cdd04,
+	0x74e1d33,
+	0x7515d38,
+	0x7545d45,
+	0x7561d51,
+	0x7589d58,
+	0x75a9d62,
+	0x75c5d6a,
+	0x75edd71,
+	0x75fdd7b,
+	0x7601d7f,
+	0x7605d80,
+	0x7639d81,
+	0x7645d8e,
+	0x7665d91,
+	0x76ddd99,
+	0x276e1db7,
+	0x7705db8,
+	0x7725dc1,
+	0x7739dc9,
+	0x774ddce,
+	0x7751dd3,
+	0x7771dd4,
+	0x7815ddc,
+	0x7831e05,
+	0x7855e0c,
+	0x785de15,
+	0x7869e17,
+	0x7871e1a,
+	0x7885e1c,
+	0x78a5e21,
+	0x78b1e29,
+	0x78bde2c,
+	0x78ede2f,
+	0x79c1e3b,
+	0x79c5e70,
+	0x79d9e71,
+	0x79e1e76,
+	0x79f9e78,
+	0x79fde7e,
+	0x7a09e7f,
+	0x7a0de82,
+	0x7a29e83,
+	0x7a65e8a,
+	0x7a69e99,
+	0x7a89e9a,
+	0x7ad9ea2,
+	0x7af5eb6,
+	0x7b49ebd,
+	0x7b4ded2,
+	0x7b51ed3,
+	0x7b55ed4,
+	0x7b99ed5,
+	0x7ba9ee6,
+	0x7be9eea,
+	0x7bedefa,
+	0x7c1defb,
+	0x7d65f07,
+	0x7d8df59,
+	0x7db9f63,
+	0x7dc5f6e,
+	0x7dcdf71,
+	0x7eddf73,
+	0x7ee9fb7,
+	0x7ef5fba,
+	0x7f01fbd,
+	0x7f0dfc0,
+	0x7f19fc3,
+	0x7f25fc6,
+	0x7f31fc9,
+	0x7f3dfcc,
+	0x7f49fcf,
+	0x7f55fd2,
+	0x7f61fd5,
+	0x7f6dfd8,
+	0x7f79fdb,
+	0x7f81fde,
+	0x7f8dfe0,
+	0x7f99fe3,
+	0x7fa5fe6,
+	0x7fb1fe9,
+	0x7fbdfec,
+	0x7fc9fef,
+	0x7fd5ff2,
+	0x7fe1ff5,
+	0x7fedff8,
+	0x7ff9ffb,
+	0x8005ffe,
+	0x8032001,
+	0x803e00c,
+	0x804a00f,
+	0x8056012,
+	0x8062015,
+	0x806e018,
+	0x807601b,
+	0x808201d,
+	0x808e020,
+	0x809a023,
+	0x80a6026,
+	0x80b2029,
+	0x80be02c,
+	0x80ca02f,
+	0x80d6032,
+	0x80e2035,
+	0x80ee038,
+	0x80fa03b,
+	0x810603e,
+	0x8112041,
+	0x811a044,
+	0x8126046,
+	0x8132049,
+	0x813e04c,
+	0x814a04f,
+	0x8156052,
+	0x8162055,
+	0x816e058,
+	0x817a05b,
+	0x817e05e,
+	0x818a05f,
+	0x81a6062,
+	0x81aa069,
+	0x81ba06a,
+	0x81d606e,
+	0x821a075,
+	0x821e086,
+	0x8232087,
+	0x826608c,
+	0x8276099,
+	0x829609d,
+	0x82ae0a5,
+	0x82c60ab,
+	0x82ce0b1,
+	0x283120b3,
+	0x83160c4,
+	0x83420c5,
+	0x834a0d0,
+	0x835e0d2,
+}
+
+// max children 494 (capacity 1023)
+// max text offset 28750 (capacity 32767)
+// max text length 36 (capacity 63)
+// max hi 8407 (capacity 16383)
+// max lo 8402 (capacity 16383)
diff --git a/traffic_ops/testing/compare/vendor/vendor.json b/traffic_ops/testing/compare/vendor/vendor.json
new file mode 100644
index 0000000000..e6e3c12b6c
--- /dev/null
+++ b/traffic_ops/testing/compare/vendor/vendor.json
@@ -0,0 +1,19 @@
+{
+	"comment": "",
+	"ignore": "test",
+	"package": [
+		{
+			"checksumSHA1": "Jrjxy16tD9mUgr/jbhXwbHVeSa0=",
+			"path": "github.com/kelseyhightower/envconfig",
+			"revision": "462fda1f11d8cad3660e52737b8beefd27acfb3f",
+			"revisionTime": "2017-09-18T16:15:10Z"
+		},
+		{
+			"checksumSHA1": "nt4o3cMOyP9prgVeAZgRf82/Et0=",
+			"path": "golang.org/x/net/publicsuffix",
+			"revision": "894f8ed5849b15b810ae41e9590a0d05395bba27",
+			"revisionTime": "2017-11-28T02:01:48Z"
+		}
+	],
+	"rootPath": "github.com/dangogh/incubator-trafficcontrol/traffic_ops/testing/cfg"
+}


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services