From 6bd18abc41061c27527b4d20d19bf527c0045708 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Feb 2023 15:49:29 +0000 Subject: [PATCH] Bump github.com/aws/aws-sdk-go from 1.28.9 to 1.34.0 Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.28.9 to 1.34.0. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/v1.34.0/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.28.9...v1.34.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- go.mod | 5 +- go.sum | 21 +- .../github.com/aws/aws-sdk-go/aws/config.go | 9 +- .../aws-sdk-go/aws/context_background_1_5.go | 40 +- .../aws-sdk-go/aws/corehandlers/handlers.go | 2 + .../credentials/context_background_go1.5.go | 22 + .../credentials/context_background_go1.7.go | 20 + .../aws/credentials/context_go1.5.go | 39 + .../aws/credentials/context_go1.9.go | 13 + .../aws-sdk-go/aws/credentials/credentials.go | 134 +- .../ec2rolecreds/ec2_role_provider.go | 20 +- .../aws/credentials/endpointcreds/provider.go | 11 +- .../shared_credentials_provider.go | 5 +- .../aws/credentials/static_provider.go | 4 +- .../stscreds/assume_role_provider.go | 44 +- .../stscreds/web_identity_provider.go | 45 +- .../aws/aws-sdk-go/aws/ec2metadata/api.go | 61 +- .../aws/aws-sdk-go/aws/ec2metadata/service.go | 2 +- .../aws/ec2metadata/token_provider.go | 2 +- .../aws/aws-sdk-go/aws/endpoints/decode.go | 2 +- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 4222 +++- .../aws/aws-sdk-go/aws/endpoints/v3model.go | 16 +- .../aws/aws-sdk-go/aws/request/request.go | 8 +- .../aws/aws-sdk-go/aws/request/retryer.go | 1 + .../aws/aws-sdk-go/aws/session/credentials.go | 10 +- .../aws-sdk-go/aws/session/shared_config.go | 28 +- .../aws/signer/v4/request_context_go1.5.go | 13 + .../aws/signer/v4/request_context_go1.7.go | 13 + .../aws/aws-sdk-go/aws/signer/v4/v4.go | 2 +- vendor/github.com/aws/aws-sdk-go/aws/types.go | 23 + .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../internal/context/background_go1.5.go | 40 + .../internal/sync/singleflight/LICENSE | 27 + .../sync/singleflight/singleflight.go | 120 + .../private/checksum/content_md5.go | 53 + .../eventstream/eventstreamapi/reader.go | 15 +- .../private/protocol/eventstream/header.go | 9 + .../private/protocol/eventstream/message.go | 14 + .../private/protocol/query/build.go | 2 +- .../private/protocol/query/unmarshal.go | 2 +- .../private/protocol/restxml/restxml.go | 4 +- .../aws-sdk-go/private/protocol/timestamp.go | 3 +- .../private/protocol/xml/xmlutil/build.go | 9 + .../private/protocol/xml/xmlutil/unmarshal.go | 8 + .../aws/aws-sdk-go/service/s3/api.go | 1519 +- .../aws/aws-sdk-go/service/s3/body_hash.go | 49 +- .../aws-sdk-go/service/s3/customizations.go | 6 - .../aws/aws-sdk-go/service/s3/doc_custom.go | 13 - .../service/s3/s3manager/bucket_region.go | 71 + .../aws-sdk-go/service/s3/s3manager/pool.go | 244 + .../aws-sdk-go/service/s3/s3manager/upload.go | 64 +- .../service/s3/s3manager/upload_input.go | 6 +- .../aws-sdk-go/service/s3/statusok_error.go | 16 +- .../aws-sdk-go/service/s3/unmarshal_error.go | 40 +- .../aws/aws-sdk-go/service/sts/api.go | 4 +- .../jmespath/go-jmespath/.travis.yml | 10 +- .../github.com/jmespath/go-jmespath/README.md | 82 +- vendor/github.com/jmespath/go-jmespath/api.go | 2 +- vendor/github.com/jmespath/go-jmespath/go.mod | 5 + vendor/github.com/jmespath/go-jmespath/go.sum | 11 + .../github.com/jmespath/go-jmespath/parser.go | 2 +- vendor/github.com/pkg/errors/.travis.yml | 11 +- vendor/github.com/pkg/errors/Makefile | 44 + vendor/github.com/pkg/errors/README.md | 11 +- vendor/github.com/pkg/errors/errors.go | 8 +- vendor/github.com/pkg/errors/go113.go | 38 + vendor/github.com/pkg/errors/stack.go | 58 +- vendor/golang.org/x/net/idna/tables11.0.0.go | 2 +- vendor/golang.org/x/net/idna/tables12.00.go | 4733 ++++ vendor/golang.org/x/net/publicsuffix/table.go | 19352 ++++++++-------- vendor/modules.txt | 11 +- 71 files changed, 20310 insertions(+), 11247 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go create mode 100644 vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go create mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE create mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go create mode 100644 vendor/github.com/aws/aws-sdk-go/private/checksum/content_md5.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/pool.go create mode 100644 vendor/github.com/jmespath/go-jmespath/go.mod create mode 100644 vendor/github.com/jmespath/go-jmespath/go.sum create mode 100644 vendor/github.com/pkg/errors/Makefile create mode 100644 vendor/github.com/pkg/errors/go113.go create mode 100644 vendor/golang.org/x/net/idna/tables12.00.go diff --git a/go.mod b/go.mod index 74d4083f4..541233014 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/alecthomas/kingpin v2.2.6+incompatible github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect - github.com/aws/aws-sdk-go v1.28.9 + github.com/aws/aws-sdk-go v1.34.0 github.com/docker/distribution v2.7.1+incompatible // indirect github.com/docker/docker v1.13.1 github.com/docker/go-connections v0.4.0 // indirect @@ -24,14 +24,13 @@ require ( github.com/mongodb/mongo-tools-common v2.0.1+incompatible github.com/opencontainers/go-digest v1.0.0-rc1 // indirect github.com/pierrec/lz4 v2.3.0+incompatible - github.com/pkg/errors v0.8.1 + github.com/pkg/errors v0.9.1 github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 // indirect github.com/tidwall/pretty v1.0.0 // indirect github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c // indirect github.com/xdg/stringprep v1.0.0 // indirect go.mongodb.org/mongo-driver v1.1.3 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect - golang.org/x/net v0.0.0-20191021144547-ec77196f6094 // indirect golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect gopkg.in/ini.v1 v1.42.0 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 diff --git a/go.sum b/go.sum index 2e549e897..76d6b545a 100644 --- a/go.sum +++ b/go.sum @@ -6,9 +6,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafo github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/aws/aws-sdk-go v1.28.9 h1:grIuBQc+p3dTRXerh5+2OxSuWFi0iXuxbFdTSg0jaW0= -github.com/aws/aws-sdk-go v1.28.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/aws/aws-sdk-go v1.34.0 h1:brux2dRrlwCF5JhTL7MUT3WUwo9zfDHZZp3+g3Mvlmo= +github.com/aws/aws-sdk-go v1.34.0/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -24,6 +23,7 @@ github.com/frankban/quicktest v1.5.0 h1:Tb4jWdSpdjKzTUicPnY61PZxKbDoGa7ABbrReT3g github.com/frankban/quicktest v1.5.0/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= github.com/go-ini/ini v1.51.1 h1:/QG3cj23k5V8mOl4JnNzUNhc1kr/jzMiNsNuWKcx8gM= github.com/go-ini/ini v1.51.1/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= @@ -36,8 +36,8 @@ github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+d github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= +github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -58,8 +58,9 @@ github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2i github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/pierrec/lz4 v2.3.0+incompatible h1:CZzRn4Ut9GbUkHlQ7jqBXeZQV41ZSKWFc302ZU6lUTk= github.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= @@ -70,8 +71,9 @@ github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:s github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= @@ -85,13 +87,12 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+Tw6seqJz1EbqbnzHrc8= -golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b h1:ag/x1USPSsqHud38I9BAC88qdNLDHHtQ4mlgQIZPPNA= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/aws/aws-sdk-go/aws/config.go b/vendor/github.com/aws/aws-sdk-go/aws/config.go index 2def23fa1..3b809e847 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/config.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/config.go @@ -43,7 +43,7 @@ type Config struct { // An optional endpoint URL (hostname only or fully qualified URI) // that overrides the default generated endpoint for a client. Set this - // to `""` to use the default generated endpoint. + // to `nil` or the value to `""` to use the default generated endpoint. // // Note: You must still provide a `Region` value when specifying an // endpoint for a client. @@ -138,7 +138,7 @@ type Config struct { // `ExpectContinueTimeout` for information on adjusting the continue wait // timeout. https://golang.org/pkg/net/http/#Transport // - // You should use this flag to disble 100-Continue if you experience issues + // You should use this flag to disable 100-Continue if you experience issues // with proxies or third party S3 compatible services. S3Disable100Continue *bool @@ -183,7 +183,7 @@ type Config struct { // // Example: // sess := session.Must(session.NewSession(aws.NewConfig() - // .WithEC2MetadataDiableTimeoutOverride(true))) + // .WithEC2MetadataDisableTimeoutOverride(true))) // // svc := s3.New(sess) // @@ -194,7 +194,7 @@ type Config struct { // both IPv4 and IPv6 addressing. // // Setting this for a service which does not support dual stack will fail - // to make requets. It is not recommended to set this value on the session + // to make requests. It is not recommended to set this value on the session // as it will apply to all service clients created with the session. Even // services which don't support dual stack endpoints. // @@ -238,6 +238,7 @@ type Config struct { // EnableEndpointDiscovery will allow for endpoint discovery on operations that // have the definition in its model. By default, endpoint discovery is off. + // To use EndpointDiscovery, Endpoint should be unset or set to an empty string. // // Example: // sess := session.Must(session.NewSession(&aws.Config{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go index 66c5945db..2f9446333 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go @@ -2,42 +2,8 @@ package aws -import "time" - -// An emptyCtx is a copy of the Go 1.7 context.emptyCtx type. This is copied to -// provide a 1.6 and 1.5 safe version of context that is compatible with Go -// 1.7's Context. -// -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case backgroundCtx: - return "aws.BackgroundContext" - } - return "unknown empty Context" -} - -var ( - backgroundCtx = new(emptyCtx) +import ( + "github.com/aws/aws-sdk-go/internal/context" ) // BackgroundContext returns a context that will never be canceled, has no @@ -52,5 +18,5 @@ var ( // // See https://golang.org/pkg/context for more information on Contexts. func BackgroundContext() Context { - return backgroundCtx + return context.BackgroundCtx } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go index aa902d708..d95a5eb54 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go @@ -225,6 +225,8 @@ var ValidateEndpointHandler = request.NamedHandler{Name: "core.ValidateEndpointH if r.ClientInfo.SigningRegion == "" && aws.StringValue(r.Config.Region) == "" { r.Error = aws.ErrMissingRegion } else if r.ClientInfo.Endpoint == "" { + // Was any endpoint provided by the user, or one was derived by the + // SDK's endpoint resolver? r.Error = aws.ErrMissingEndpoint } }} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go new file mode 100644 index 000000000..5852b2648 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go @@ -0,0 +1,22 @@ +// +build !go1.7 + +package credentials + +import ( + "github.com/aws/aws-sdk-go/internal/context" +) + +// backgroundContext returns a context that will never be canceled, has no +// values, and no deadline. This context is used by the SDK to provide +// backwards compatibility with non-context API operations and functionality. +// +// Go 1.6 and before: +// This context function is equivalent to context.Background in the Go stdlib. +// +// Go 1.7 and later: +// The context returned will be the value returned by context.Background() +// +// See https://golang.org/pkg/context for more information on Contexts. +func backgroundContext() Context { + return context.BackgroundCtx +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go new file mode 100644 index 000000000..388b21541 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go @@ -0,0 +1,20 @@ +// +build go1.7 + +package credentials + +import "context" + +// backgroundContext returns a context that will never be canceled, has no +// values, and no deadline. This context is used by the SDK to provide +// backwards compatibility with non-context API operations and functionality. +// +// Go 1.6 and before: +// This context function is equivalent to context.Background in the Go stdlib. +// +// Go 1.7 and later: +// The context returned will be the value returned by context.Background() +// +// See https://golang.org/pkg/context for more information on Contexts. +func backgroundContext() Context { + return context.Background() +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go new file mode 100644 index 000000000..8152a864a --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go @@ -0,0 +1,39 @@ +// +build !go1.9 + +package credentials + +import "time" + +// Context is an copy of the Go v1.7 stdlib's context.Context interface. +// It is represented as a SDK interface to enable you to use the "WithContext" +// API methods with Go v1.6 and a Context type such as golang.org/x/net/context. +// +// This type, aws.Context, and context.Context are equivalent. +// +// See https://golang.org/pkg/context on how to use contexts. +type Context interface { + // Deadline returns the time when work done on behalf of this context + // should be canceled. Deadline returns ok==false when no deadline is + // set. Successive calls to Deadline return the same results. + Deadline() (deadline time.Time, ok bool) + + // Done returns a channel that's closed when work done on behalf of this + // context should be canceled. Done may return nil if this context can + // never be canceled. Successive calls to Done return the same value. + Done() <-chan struct{} + + // Err returns a non-nil error value after Done is closed. Err returns + // Canceled if the context was canceled or DeadlineExceeded if the + // context's deadline passed. No other values for Err are defined. + // After Done is closed, successive calls to Err return the same value. + Err() error + + // Value returns the value associated with this context for key, or nil + // if no value is associated with key. Successive calls to Value with + // the same key returns the same result. + // + // Use context values only for request-scoped data that transits + // processes and API boundaries, not for passing optional parameters to + // functions. + Value(key interface{}) interface{} +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go new file mode 100644 index 000000000..4356edb3d --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go @@ -0,0 +1,13 @@ +// +build go1.9 + +package credentials + +import "context" + +// Context is an alias of the Go stdlib's context.Context interface. +// It can be used within the SDK's API operation "WithContext" methods. +// +// This type, aws.Context, and context.Context are equivalent. +// +// See https://golang.org/pkg/context on how to use contexts. +type Context = context.Context diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go index 4af592158..9f8fd92a5 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go @@ -50,10 +50,11 @@ package credentials import ( "fmt" - "sync" + "sync/atomic" "time" "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/internal/sync/singleflight" ) // AnonymousCredentials is an empty Credential object that can be used as @@ -106,6 +107,13 @@ type Provider interface { IsExpired() bool } +// ProviderWithContext is a Provider that can retrieve credentials with a Context +type ProviderWithContext interface { + Provider + + RetrieveWithContext(Context) (Value, error) +} + // An Expirer is an interface that Providers can implement to expose the expiration // time, if known. If the Provider cannot accurately provide this info, // it should not implement this interface. @@ -197,24 +205,24 @@ func (e *Expiry) ExpiresAt() time.Time { // first instance of the credentials Value. All calls to Get() after that // will return the cached credentials Value until IsExpired() returns true. type Credentials struct { - creds Value - forceRefresh bool - - m sync.RWMutex + creds atomic.Value + sf singleflight.Group provider Provider } // NewCredentials returns a pointer to a new Credentials with the provider set. func NewCredentials(provider Provider) *Credentials { - return &Credentials{ - provider: provider, - forceRefresh: true, + c := &Credentials{ + provider: provider, } + c.creds.Store(Value{}) + return c } -// Get returns the credentials value, or error if the credentials Value failed -// to be retrieved. +// GetWithContext returns the credentials value, or error if the credentials +// Value failed to be retrieved. Will return early if the passed in context is +// canceled. // // Will return the cached credentials Value if it has not expired. If the // credentials Value has expired the Provider's Retrieve() will be called @@ -222,31 +230,56 @@ func NewCredentials(provider Provider) *Credentials { // // If Credentials.Expire() was called the credentials Value will be force // expired, and the next call to Get() will cause them to be refreshed. -func (c *Credentials) Get() (Value, error) { - // Check the cached credentials first with just the read lock. - c.m.RLock() - if !c.isExpired() { - creds := c.creds - c.m.RUnlock() - return creds, nil +// +// Passed in Context is equivalent to aws.Context, and context.Context. +func (c *Credentials) GetWithContext(ctx Context) (Value, error) { + if curCreds := c.creds.Load(); !c.isExpired(curCreds) { + return curCreds.(Value), nil } - c.m.RUnlock() - - // Credentials are expired need to retrieve the credentials taking the full - // lock. - c.m.Lock() - defer c.m.Unlock() - - if c.isExpired() { - creds, err := c.provider.Retrieve() - if err != nil { - return Value{}, err - } - c.creds = creds - c.forceRefresh = false + + // Cannot pass context down to the actual retrieve, because the first + // context would cancel the whole group when there is not direct + // association of items in the group. + resCh := c.sf.DoChan("", func() (interface{}, error) { + return c.singleRetrieve(&suppressedContext{ctx}) + }) + select { + case res := <-resCh: + return res.Val.(Value), res.Err + case <-ctx.Done(): + return Value{}, awserr.New("RequestCanceled", + "request context canceled", ctx.Err()) } +} - return c.creds, nil +func (c *Credentials) singleRetrieve(ctx Context) (creds interface{}, err error) { + if curCreds := c.creds.Load(); !c.isExpired(curCreds) { + return curCreds.(Value), nil + } + + if p, ok := c.provider.(ProviderWithContext); ok { + creds, err = p.RetrieveWithContext(ctx) + } else { + creds, err = c.provider.Retrieve() + } + if err == nil { + c.creds.Store(creds) + } + + return creds, err +} + +// Get returns the credentials value, or error if the credentials Value failed +// to be retrieved. +// +// Will return the cached credentials Value if it has not expired. If the +// credentials Value has expired the Provider's Retrieve() will be called +// to refresh the credentials. +// +// If Credentials.Expire() was called the credentials Value will be force +// expired, and the next call to Get() will cause them to be refreshed. +func (c *Credentials) Get() (Value, error) { + return c.GetWithContext(backgroundContext()) } // Expire expires the credentials and forces them to be retrieved on the @@ -255,10 +288,7 @@ func (c *Credentials) Get() (Value, error) { // This will override the Provider's expired state, and force Credentials // to call the Provider's Retrieve(). func (c *Credentials) Expire() { - c.m.Lock() - defer c.m.Unlock() - - c.forceRefresh = true + c.creds.Store(Value{}) } // IsExpired returns if the credentials are no longer valid, and need @@ -267,33 +297,43 @@ func (c *Credentials) Expire() { // If the Credentials were forced to be expired with Expire() this will // reflect that override. func (c *Credentials) IsExpired() bool { - c.m.RLock() - defer c.m.RUnlock() - - return c.isExpired() + return c.isExpired(c.creds.Load()) } // isExpired helper method wrapping the definition of expired credentials. -func (c *Credentials) isExpired() bool { - return c.forceRefresh || c.provider.IsExpired() +func (c *Credentials) isExpired(creds interface{}) bool { + return creds == nil || creds.(Value) == Value{} || c.provider.IsExpired() } // ExpiresAt provides access to the functionality of the Expirer interface of // the underlying Provider, if it supports that interface. Otherwise, it returns // an error. func (c *Credentials) ExpiresAt() (time.Time, error) { - c.m.RLock() - defer c.m.RUnlock() - expirer, ok := c.provider.(Expirer) if !ok { return time.Time{}, awserr.New("ProviderNotExpirer", - fmt.Sprintf("provider %s does not support ExpiresAt()", c.creds.ProviderName), + fmt.Sprintf("provider %s does not support ExpiresAt()", c.creds.Load().(Value).ProviderName), nil) } - if c.forceRefresh { + if c.creds.Load().(Value) == (Value{}) { // set expiration time to the distant past return time.Time{}, nil } return expirer.ExpiresAt(), nil } + +type suppressedContext struct { + Context +} + +func (s *suppressedContext) Deadline() (deadline time.Time, ok bool) { + return time.Time{}, false +} + +func (s *suppressedContext) Done() <-chan struct{} { + return nil +} + +func (s *suppressedContext) Err() error { + return nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go index 43d4ed386..92af5b725 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go @@ -7,6 +7,7 @@ import ( "strings" "time" + "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/credentials" @@ -87,7 +88,14 @@ func NewCredentialsWithClient(client *ec2metadata.EC2Metadata, options ...func(* // Error will be returned if the request fails, or unable to extract // the desired credentials. func (m *EC2RoleProvider) Retrieve() (credentials.Value, error) { - credsList, err := requestCredList(m.Client) + return m.RetrieveWithContext(aws.BackgroundContext()) +} + +// RetrieveWithContext retrieves credentials from the EC2 service. +// Error will be returned if the request fails, or unable to extract +// the desired credentials. +func (m *EC2RoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { + credsList, err := requestCredList(ctx, m.Client) if err != nil { return credentials.Value{ProviderName: ProviderName}, err } @@ -97,7 +105,7 @@ func (m *EC2RoleProvider) Retrieve() (credentials.Value, error) { } credsName := credsList[0] - roleCreds, err := requestCred(m.Client, credsName) + roleCreds, err := requestCred(ctx, m.Client, credsName) if err != nil { return credentials.Value{ProviderName: ProviderName}, err } @@ -130,8 +138,8 @@ const iamSecurityCredsPath = "iam/security-credentials/" // requestCredList requests a list of credentials from the EC2 service. // If there are no credentials, or there is an error making or receiving the request -func requestCredList(client *ec2metadata.EC2Metadata) ([]string, error) { - resp, err := client.GetMetadata(iamSecurityCredsPath) +func requestCredList(ctx aws.Context, client *ec2metadata.EC2Metadata) ([]string, error) { + resp, err := client.GetMetadataWithContext(ctx, iamSecurityCredsPath) if err != nil { return nil, awserr.New("EC2RoleRequestError", "no EC2 instance role found", err) } @@ -154,8 +162,8 @@ func requestCredList(client *ec2metadata.EC2Metadata) ([]string, error) { // // If the credentials cannot be found, or there is an error reading the response // and error will be returned. -func requestCred(client *ec2metadata.EC2Metadata, credsName string) (ec2RoleCredRespBody, error) { - resp, err := client.GetMetadata(sdkuri.PathJoin(iamSecurityCredsPath, credsName)) +func requestCred(ctx aws.Context, client *ec2metadata.EC2Metadata, credsName string) (ec2RoleCredRespBody, error) { + resp, err := client.GetMetadataWithContext(ctx, sdkuri.PathJoin(iamSecurityCredsPath, credsName)) if err != nil { return ec2RoleCredRespBody{}, awserr.New("EC2RoleRequestError", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go index 1a7af53a4..785f30d8e 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go @@ -116,7 +116,13 @@ func (p *Provider) IsExpired() bool { // Retrieve will attempt to request the credentials from the endpoint the Provider // was configured for. And error will be returned if the retrieval fails. func (p *Provider) Retrieve() (credentials.Value, error) { - resp, err := p.getCredentials() + return p.RetrieveWithContext(aws.BackgroundContext()) +} + +// RetrieveWithContext will attempt to request the credentials from the endpoint the Provider +// was configured for. And error will be returned if the retrieval fails. +func (p *Provider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { + resp, err := p.getCredentials(ctx) if err != nil { return credentials.Value{ProviderName: ProviderName}, awserr.New("CredentialsEndpointError", "failed to load credentials", err) @@ -148,7 +154,7 @@ type errorOutput struct { Message string `json:"message"` } -func (p *Provider) getCredentials() (*getCredentialsOutput, error) { +func (p *Provider) getCredentials(ctx aws.Context) (*getCredentialsOutput, error) { op := &request.Operation{ Name: "GetCredentials", HTTPMethod: "GET", @@ -156,6 +162,7 @@ func (p *Provider) getCredentials() (*getCredentialsOutput, error) { out := &getCredentialsOutput{} req := p.Client.NewRequest(op, nil, out) + req.SetContext(ctx) req.HTTPRequest.Header.Set("Accept", "application/json") if authToken := p.AuthorizationToken; len(authToken) != 0 { req.HTTPRequest.Header.Set("Authorization", authToken) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go index e15514958..22b5c5d9f 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go @@ -17,8 +17,9 @@ var ( ErrSharedCredentialsHomeNotFound = awserr.New("UserHomeNotFound", "user home directory not found.", nil) ) -// A SharedCredentialsProvider retrieves credentials from the current user's home -// directory, and keeps track if those credentials are expired. +// A SharedCredentialsProvider retrieves access key pair (access key ID, +// secret access key, and session token if present) credentials from the current +// user's home directory, and keeps track if those credentials are expired. // // Profile ini file example: $HOME/.aws/credentials type SharedCredentialsProvider struct { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go index 531139e39..cbba1e3d5 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go @@ -19,7 +19,9 @@ type StaticProvider struct { } // NewStaticCredentials returns a pointer to a new Credentials object -// wrapping a static credentials value provider. +// wrapping a static credentials value provider. Token is only required +// for temporary security credentials retrieved via STS, otherwise an empty +// string can be passed for this parameter. func NewStaticCredentials(id, secret, token string) *Credentials { return NewCredentials(&StaticProvider{Value: Value{ AccessKeyID: id, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go index 9f37f44bc..6846ef6f8 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go @@ -87,6 +87,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/internal/sdkrand" "github.com/aws/aws-sdk-go/service/sts" ) @@ -118,6 +119,10 @@ type AssumeRoler interface { AssumeRole(input *sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) } +type assumeRolerWithContext interface { + AssumeRoleWithContext(aws.Context, *sts.AssumeRoleInput, ...request.Option) (*sts.AssumeRoleOutput, error) +} + // DefaultDuration is the default amount of time in minutes that the credentials // will be valid for. var DefaultDuration = time.Duration(15) * time.Minute @@ -164,6 +169,29 @@ type AssumeRoleProvider struct { // size. Policy *string + // The ARNs of IAM managed policies you want to use as managed session policies. + // The policies must exist in the same account as the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plain text that you use for both inline and managed session + // policies can't exceed 2,048 characters. + // + // An AWS conversion compresses the passed session policies and session tags + // into a packed binary format that has a separate limit. Your request can fail + // for this limit even if your plain text meets the other requirements. The + // PackedPolicySize response element indicates by percentage how close the policies + // and tags for your request are to the upper size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's identity-based + // policy and the session policies. You can use the role's temporary credentials + // in subsequent AWS API calls to access resources in the account that owns + // the role. You cannot use session policies to grant more permissions than + // those allowed by the identity-based policy of the role that is being assumed. + // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + PolicyArns []*sts.PolicyDescriptorType + // The identification number of the MFA device that is associated with the user // who is making the AssumeRole call. Specify this value if the trust policy // of the role being assumed includes a condition that requires MFA authentication. @@ -265,6 +293,11 @@ func NewCredentialsWithClient(svc AssumeRoler, roleARN string, options ...func(* // Retrieve generates a new set of temporary credentials using STS. func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { + return p.RetrieveWithContext(aws.BackgroundContext()) +} + +// RetrieveWithContext generates a new set of temporary credentials using STS. +func (p *AssumeRoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { // Apply defaults where parameters are not set. if p.RoleSessionName == "" { // Try to work out a role name that will hopefully end up unique. @@ -281,6 +314,7 @@ func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { RoleSessionName: aws.String(p.RoleSessionName), ExternalId: p.ExternalID, Tags: p.Tags, + PolicyArns: p.PolicyArns, TransitiveTagKeys: p.TransitiveTagKeys, } if p.Policy != nil { @@ -304,7 +338,15 @@ func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { } } - roleOutput, err := p.Client.AssumeRole(input) + var roleOutput *sts.AssumeRoleOutput + var err error + + if c, ok := p.Client.(assumeRolerWithContext); ok { + roleOutput, err = c.AssumeRoleWithContext(ctx, input) + } else { + roleOutput, err = p.Client.AssumeRole(input) + } + if err != nil { return credentials.Value{ProviderName: ProviderName}, err } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go index b20b63394..6feb262b2 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go @@ -28,15 +28,34 @@ const ( // compare test values. var now = time.Now +// TokenFetcher shuold return WebIdentity token bytes or an error +type TokenFetcher interface { + FetchToken(credentials.Context) ([]byte, error) +} + +// FetchTokenPath is a path to a WebIdentity token file +type FetchTokenPath string + +// FetchToken returns a token by reading from the filesystem +func (f FetchTokenPath) FetchToken(ctx credentials.Context) ([]byte, error) { + data, err := ioutil.ReadFile(string(f)) + if err != nil { + errMsg := fmt.Sprintf("unable to read file at %s", f) + return nil, awserr.New(ErrCodeWebIdentity, errMsg, err) + } + return data, nil +} + // WebIdentityRoleProvider is used to retrieve credentials using // an OIDC token. type WebIdentityRoleProvider struct { credentials.Expiry + PolicyArns []*sts.PolicyDescriptorType client stsiface.STSAPI ExpiryWindow time.Duration - tokenFilePath string + tokenFetcher TokenFetcher roleARN string roleSessionName string } @@ -52,9 +71,15 @@ func NewWebIdentityCredentials(c client.ConfigProvider, roleARN, roleSessionName // NewWebIdentityRoleProvider will return a new WebIdentityRoleProvider with the // provided stsiface.STSAPI func NewWebIdentityRoleProvider(svc stsiface.STSAPI, roleARN, roleSessionName, path string) *WebIdentityRoleProvider { + return NewWebIdentityRoleProviderWithToken(svc, roleARN, roleSessionName, FetchTokenPath(path)) +} + +// NewWebIdentityRoleProviderWithToken will return a new WebIdentityRoleProvider with the +// provided stsiface.STSAPI and a TokenFetcher +func NewWebIdentityRoleProviderWithToken(svc stsiface.STSAPI, roleARN, roleSessionName string, tokenFetcher TokenFetcher) *WebIdentityRoleProvider { return &WebIdentityRoleProvider{ client: svc, - tokenFilePath: path, + tokenFetcher: tokenFetcher, roleARN: roleARN, roleSessionName: roleSessionName, } @@ -64,10 +89,16 @@ func NewWebIdentityRoleProvider(svc stsiface.STSAPI, roleARN, roleSessionName, p // 'WebIdentityTokenFilePath' specified destination and if that is empty an // error will be returned. func (p *WebIdentityRoleProvider) Retrieve() (credentials.Value, error) { - b, err := ioutil.ReadFile(p.tokenFilePath) + return p.RetrieveWithContext(aws.BackgroundContext()) +} + +// RetrieveWithContext will attempt to assume a role from a token which is located at +// 'WebIdentityTokenFilePath' specified destination and if that is empty an +// error will be returned. +func (p *WebIdentityRoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { + b, err := p.tokenFetcher.FetchToken(ctx) if err != nil { - errMsg := fmt.Sprintf("unable to read file at %s", p.tokenFilePath) - return credentials.Value{}, awserr.New(ErrCodeWebIdentity, errMsg, err) + return credentials.Value{}, awserr.New(ErrCodeWebIdentity, "failed fetching WebIdentity token: ", err) } sessionName := p.roleSessionName @@ -77,10 +108,14 @@ func (p *WebIdentityRoleProvider) Retrieve() (credentials.Value, error) { sessionName = strconv.FormatInt(now().UnixNano(), 10) } req, resp := p.client.AssumeRoleWithWebIdentityRequest(&sts.AssumeRoleWithWebIdentityInput{ + PolicyArns: p.PolicyArns, RoleArn: &p.roleARN, RoleSessionName: &sessionName, WebIdentityToken: aws.String(string(b)), }) + + req.SetContext(ctx) + // InvalidIdentityToken error is a temporary error that can occur // when assuming an Role with a JWT web identity token. req.RetryErrorCodes = append(req.RetryErrorCodes, sts.ErrCodeInvalidIdentityTokenException) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go index 12897eef6..a716c021c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go @@ -8,6 +8,7 @@ import ( "strings" "time" + "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/internal/sdkuri" @@ -15,7 +16,7 @@ import ( // getToken uses the duration to return a token for EC2 metadata service, // or an error if the request failed. -func (c *EC2Metadata) getToken(duration time.Duration) (tokenOutput, error) { +func (c *EC2Metadata) getToken(ctx aws.Context, duration time.Duration) (tokenOutput, error) { op := &request.Operation{ Name: "GetToken", HTTPMethod: "PUT", @@ -24,6 +25,7 @@ func (c *EC2Metadata) getToken(duration time.Duration) (tokenOutput, error) { var output tokenOutput req := c.NewRequest(op, nil, &output) + req.SetContext(ctx) // remove the fetch token handler from the request handlers to avoid infinite recursion req.Handlers.Sign.RemoveByName(fetchTokenHandlerName) @@ -50,6 +52,13 @@ func (c *EC2Metadata) getToken(duration time.Duration) (tokenOutput, error) { // instance metadata service. The content will be returned as a string, or // error if the request failed. func (c *EC2Metadata) GetMetadata(p string) (string, error) { + return c.GetMetadataWithContext(aws.BackgroundContext(), p) +} + +// GetMetadataWithContext uses the path provided to request information from the EC2 +// instance metadata service. The content will be returned as a string, or +// error if the request failed. +func (c *EC2Metadata) GetMetadataWithContext(ctx aws.Context, p string) (string, error) { op := &request.Operation{ Name: "GetMetadata", HTTPMethod: "GET", @@ -59,6 +68,8 @@ func (c *EC2Metadata) GetMetadata(p string) (string, error) { req := c.NewRequest(op, nil, output) + req.SetContext(ctx) + err := req.Send() return output.Content, err } @@ -67,6 +78,13 @@ func (c *EC2Metadata) GetMetadata(p string) (string, error) { // there is no user-data setup for the EC2 instance a "NotFoundError" error // code will be returned. func (c *EC2Metadata) GetUserData() (string, error) { + return c.GetUserDataWithContext(aws.BackgroundContext()) +} + +// GetUserDataWithContext returns the userdata that was configured for the service. If +// there is no user-data setup for the EC2 instance a "NotFoundError" error +// code will be returned. +func (c *EC2Metadata) GetUserDataWithContext(ctx aws.Context) (string, error) { op := &request.Operation{ Name: "GetUserData", HTTPMethod: "GET", @@ -75,6 +93,7 @@ func (c *EC2Metadata) GetUserData() (string, error) { output := &metadataOutput{} req := c.NewRequest(op, nil, output) + req.SetContext(ctx) err := req.Send() return output.Content, err @@ -84,6 +103,13 @@ func (c *EC2Metadata) GetUserData() (string, error) { // instance metadata service for dynamic data. The content will be returned // as a string, or error if the request failed. func (c *EC2Metadata) GetDynamicData(p string) (string, error) { + return c.GetDynamicDataWithContext(aws.BackgroundContext(), p) +} + +// GetDynamicDataWithContext uses the path provided to request information from the EC2 +// instance metadata service for dynamic data. The content will be returned +// as a string, or error if the request failed. +func (c *EC2Metadata) GetDynamicDataWithContext(ctx aws.Context, p string) (string, error) { op := &request.Operation{ Name: "GetDynamicData", HTTPMethod: "GET", @@ -92,6 +118,7 @@ func (c *EC2Metadata) GetDynamicData(p string) (string, error) { output := &metadataOutput{} req := c.NewRequest(op, nil, output) + req.SetContext(ctx) err := req.Send() return output.Content, err @@ -101,7 +128,14 @@ func (c *EC2Metadata) GetDynamicData(p string) (string, error) { // instance. Error is returned if the request fails or is unable to parse // the response. func (c *EC2Metadata) GetInstanceIdentityDocument() (EC2InstanceIdentityDocument, error) { - resp, err := c.GetDynamicData("instance-identity/document") + return c.GetInstanceIdentityDocumentWithContext(aws.BackgroundContext()) +} + +// GetInstanceIdentityDocumentWithContext retrieves an identity document describing an +// instance. Error is returned if the request fails or is unable to parse +// the response. +func (c *EC2Metadata) GetInstanceIdentityDocumentWithContext(ctx aws.Context) (EC2InstanceIdentityDocument, error) { + resp, err := c.GetDynamicDataWithContext(ctx, "instance-identity/document") if err != nil { return EC2InstanceIdentityDocument{}, awserr.New("EC2MetadataRequestError", @@ -120,7 +154,12 @@ func (c *EC2Metadata) GetInstanceIdentityDocument() (EC2InstanceIdentityDocument // IAMInfo retrieves IAM info from the metadata API func (c *EC2Metadata) IAMInfo() (EC2IAMInfo, error) { - resp, err := c.GetMetadata("iam/info") + return c.IAMInfoWithContext(aws.BackgroundContext()) +} + +// IAMInfoWithContext retrieves IAM info from the metadata API +func (c *EC2Metadata) IAMInfoWithContext(ctx aws.Context) (EC2IAMInfo, error) { + resp, err := c.GetMetadataWithContext(ctx, "iam/info") if err != nil { return EC2IAMInfo{}, awserr.New("EC2MetadataRequestError", @@ -145,7 +184,12 @@ func (c *EC2Metadata) IAMInfo() (EC2IAMInfo, error) { // Region returns the region the instance is running in. func (c *EC2Metadata) Region() (string, error) { - ec2InstanceIdentityDocument, err := c.GetInstanceIdentityDocument() + return c.RegionWithContext(aws.BackgroundContext()) +} + +// RegionWithContext returns the region the instance is running in. +func (c *EC2Metadata) RegionWithContext(ctx aws.Context) (string, error) { + ec2InstanceIdentityDocument, err := c.GetInstanceIdentityDocumentWithContext(ctx) if err != nil { return "", err } @@ -162,7 +206,14 @@ func (c *EC2Metadata) Region() (string, error) { // Can be used to determine if application is running within an EC2 Instance and // the metadata service is available. func (c *EC2Metadata) Available() bool { - if _, err := c.GetMetadata("instance-id"); err != nil { + return c.AvailableWithContext(aws.BackgroundContext()) +} + +// AvailableWithContext returns if the application has access to the EC2 Metadata service. +// Can be used to determine if application is running within an EC2 Instance and +// the metadata service is available. +func (c *EC2Metadata) AvailableWithContext(ctx aws.Context) bool { + if _, err := c.GetMetadataWithContext(ctx, "instance-id"); err != nil { return false } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go index b8b2940d7..dc7e051e0 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go @@ -41,7 +41,7 @@ const ( enableTokenProviderHandlerName = "enableTokenProviderHandler" // TTL constants - defaultTTL = 21600 * time.Second + defaultTTL = 21600 * time.Second ttlExpirationWindow = 30 * time.Second ) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go index 663372a91..d0a3a020d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go @@ -46,7 +46,7 @@ func (t *tokenProvider) fetchTokenHandler(r *request.Request) { return } - output, err := t.client.getToken(t.configuredTTL) + output, err := t.client.getToken(r.Context(), t.configuredTTL) if err != nil { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go index 343a2106f..654fb1ad5 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go @@ -93,7 +93,7 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol } func custAddS3DualStack(p *partition) { - if p.ID != "aws" { + if !(p.ID == "aws" || p.ID == "aws-cn" || p.ID == "aws-us-gov") { return } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 8978d6f62..4f9de24fd 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -17,6 +17,7 @@ const ( // AWS Standard partition's regions. const ( + AfSouth1RegionID = "af-south-1" // Africa (Cape Town). ApEast1RegionID = "ap-east-1" // Asia Pacific (Hong Kong). ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo). ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul). @@ -24,11 +25,12 @@ const ( ApSoutheast1RegionID = "ap-southeast-1" // Asia Pacific (Singapore). ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney). CaCentral1RegionID = "ca-central-1" // Canada (Central). - EuCentral1RegionID = "eu-central-1" // EU (Frankfurt). - EuNorth1RegionID = "eu-north-1" // EU (Stockholm). - EuWest1RegionID = "eu-west-1" // EU (Ireland). - EuWest2RegionID = "eu-west-2" // EU (London). - EuWest3RegionID = "eu-west-3" // EU (Paris). + EuCentral1RegionID = "eu-central-1" // Europe (Frankfurt). + EuNorth1RegionID = "eu-north-1" // Europe (Stockholm). + EuSouth1RegionID = "eu-south-1" // Europe (Milan). + EuWest1RegionID = "eu-west-1" // Europe (Ireland). + EuWest2RegionID = "eu-west-2" // Europe (London). + EuWest3RegionID = "eu-west-3" // Europe (Paris). MeSouth1RegionID = "me-south-1" // Middle East (Bahrain). SaEast1RegionID = "sa-east-1" // South America (Sao Paulo). UsEast1RegionID = "us-east-1" // US East (N. Virginia). @@ -46,7 +48,7 @@ const ( // AWS GovCloud (US) partition's regions. const ( UsGovEast1RegionID = "us-gov-east-1" // AWS GovCloud (US-East). - UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US). + UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US-West). ) // AWS ISO (US) partition's regions. @@ -97,7 +99,7 @@ var awsPartition = partition{ DNSSuffix: "amazonaws.com", RegionRegex: regionRegex{ Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^(us|eu|ap|sa|ca|me)\\-\\w+\\-\\d+$") + reg, _ := regexp.Compile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$") return reg }(), }, @@ -107,6 +109,9 @@ var awsPartition = partition{ SignatureVersions: []string{"v4"}, }, Regions: regions{ + "af-south-1": region{ + Description: "Africa (Cape Town)", + }, "ap-east-1": region{ Description: "Asia Pacific (Hong Kong)", }, @@ -129,19 +134,22 @@ var awsPartition = partition{ Description: "Canada (Central)", }, "eu-central-1": region{ - Description: "EU (Frankfurt)", + Description: "Europe (Frankfurt)", }, "eu-north-1": region{ - Description: "EU (Stockholm)", + Description: "Europe (Stockholm)", + }, + "eu-south-1": region{ + Description: "Europe (Milan)", }, "eu-west-1": region{ - Description: "EU (Ireland)", + Description: "Europe (Ireland)", }, "eu-west-2": region{ - Description: "EU (London)", + Description: "Europe (London)", }, "eu-west-3": region{ - Description: "EU (Paris)", + Description: "Europe (Paris)", }, "me-south-1": region{ Description: "Middle East (Bahrain)", @@ -169,9 +177,65 @@ var awsPartition = partition{ "us-east-1": endpoint{}, }, }, + "access-analyzer": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "access-analyzer-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "access-analyzer-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "access-analyzer-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "access-analyzer-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "access-analyzer-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "acm": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -187,6 +251,7 @@ var awsPartition = partition{ }, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -277,9 +342,38 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "api.detective": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "api.ecr": service{ Endpoints: endpoints{ + "af-south-1": endpoint{ + Hostname: "api.ecr.af-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "af-south-1", + }, + }, "ap-east-1": endpoint{ Hostname: "api.ecr.ap-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -334,6 +428,12 @@ var awsPartition = partition{ Region: "eu-north-1", }, }, + "eu-south-1": endpoint{ + Hostname: "api.ecr.eu-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-south-1", + }, + }, "eu-west-1": endpoint{ Hostname: "api.ecr.eu-west-1.amazonaws.com", CredentialScope: credentialScope{ @@ -352,6 +452,30 @@ var awsPartition = partition{ Region: "eu-west-3", }, }, + "fips-us-east-1": endpoint{ + Hostname: "ecr-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ecr-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ecr-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "ecr-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, "me-south-1": endpoint{ Hostname: "api.ecr.me-south-1.amazonaws.com", CredentialScope: credentialScope{ @@ -390,6 +514,29 @@ var awsPartition = partition{ }, }, }, + "api.elastic-inference": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{ + Hostname: "api.elastic-inference.ap-northeast-1.amazonaws.com", + }, + "ap-northeast-2": endpoint{ + Hostname: "api.elastic-inference.ap-northeast-2.amazonaws.com", + }, + "eu-west-1": endpoint{ + Hostname: "api.elastic-inference.eu-west-1.amazonaws.com", + }, + "us-east-1": endpoint{ + Hostname: "api.elastic-inference.us-east-1.amazonaws.com", + }, + "us-east-2": endpoint{ + Hostname: "api.elastic-inference.us-east-2.amazonaws.com", + }, + "us-west-2": endpoint{ + Hostname: "api.elastic-inference.us-west-2.amazonaws.com", + }, + }, + }, "api.mediatailor": service{ Endpoints: endpoints{ @@ -463,6 +610,7 @@ var awsPartition = partition{ "apigateway": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -472,6 +620,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -488,6 +637,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -497,6 +647,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -511,6 +662,7 @@ var awsPartition = partition{ "appmesh": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -518,9 +670,12 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -537,6 +692,7 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, @@ -559,11 +715,17 @@ var awsPartition = partition{ "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -595,6 +757,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -604,6 +767,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -620,6 +784,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -627,8 +792,12 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -670,15 +839,40 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "fips.batch.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "fips.batch.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "fips.batch.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "fips.batch.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "budgets": service{ @@ -727,6 +921,7 @@ var awsPartition = partition{ "cloud9": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -735,10 +930,15 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -759,6 +959,7 @@ var awsPartition = partition{ "cloudformation": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -768,15 +969,40 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, "me-south-1": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-1-fips": endpoint{ + Hostname: "cloudformation-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "cloudformation-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "us-west-1": endpoint{}, + "us-west-1-fips": endpoint{ + Hostname: "cloudformation-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "cloudformation-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "cloudfront": service{ @@ -815,6 +1041,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -824,6 +1051,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -853,6 +1081,7 @@ var awsPartition = partition{ "cloudtrail": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -862,14 +1091,54 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "cloudtrail-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "cloudtrail-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "cloudtrail-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "cloudtrail-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "codeartifact": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, - "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -952,6 +1221,7 @@ var awsPartition = partition{ "codedeploy": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -961,6 +1231,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1010,48 +1281,62 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codestar": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cognito-identity": service{ + "fips-ca-central-1": endpoint{ + Hostname: "codepipeline-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "codepipeline-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "codepipeline-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "codepipeline-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "codepipeline-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "codestar": service{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, - "cognito-idp": service{ + "codestar-connections": service{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, @@ -1061,13 +1346,87 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, + "cognito-identity": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "cognito-identity-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "cognito-identity-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "cognito-identity-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "cognito-idp": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "cognito-idp-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "cognito-idp-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "cognito-idp-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "cognito-sync": service{ Endpoints: endpoints{ @@ -1089,15 +1448,36 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "comprehend-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "comprehend-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "comprehend-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "comprehendmedical": service{ @@ -1107,9 +1487,27 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "comprehendmedical-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "comprehendmedical-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "comprehendmedical-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "config": service{ @@ -1162,6 +1560,7 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, }, @@ -1195,6 +1594,7 @@ var awsPartition = partition{ "datasync": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1204,9 +1604,16 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "datasync-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, "fips-us-east-1": endpoint{ Hostname: "datasync-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -1266,6 +1673,7 @@ var awsPartition = partition{ "directconnect": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1275,27 +1683,56 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "directconnect-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "directconnect-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "directconnect-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "directconnect-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "discovery": service{ Endpoints: endpoints{ - "eu-central-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "dms": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1303,17 +1740,24 @@ var awsPartition = partition{ "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "dms-fips": endpoint{ + Hostname: "dms-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "docdb": service{ @@ -1402,6 +1846,7 @@ var awsPartition = partition{ "ds": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1411,14 +1856,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "ds-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "ds-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ds-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ds-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "ds-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "dynamodb": service{ @@ -1426,6 +1903,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1441,6 +1919,7 @@ var awsPartition = partition{ }, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1488,6 +1967,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1497,15 +1977,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "ec2-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "ec2-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ec2-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ec2-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "ec2-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "ec2metadata": service{ @@ -1522,6 +2033,7 @@ var awsPartition = partition{ "ecs": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1531,38 +2043,34 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips": endpoint{ - Hostname: "elasticache-fips.us-west-1.amazonaws.com", + "fips-us-east-1": endpoint{ + Hostname: "ecs-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ecs-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ecs-fips.us-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-1", }, }, + "fips-us-west-2": endpoint{ + Hostname: "ecs-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, "me-south-1": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, @@ -1571,57 +2079,12 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, - "elasticbeanstalk": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticfilesystem": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticloadbalancing": service{ + "eks": service{ Defaults: endpoint{ - Protocols: []string{"https"}, + Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1631,84 +2094,39 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticmapreduce": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.{service}.{dnsSuffix}", - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{ - SSLCommonName: "{service}.{region}.{dnsSuffix}", + "fips-us-east-1": endpoint{ + Hostname: "fips.eks.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, }, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - SSLCommonName: "{service}.{region}.{dnsSuffix}", + "fips-us-east-2": endpoint{ + Hostname: "fips.eks.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elastictranscoder": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "email": service{ - - Endpoints: endpoints{ - "ap-south-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "entitlement.marketplace": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "aws-marketplace", + "fips-us-west-2": endpoint{ + Hostname: "fips.eks.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, }, - }, - Endpoints: endpoints{ - "us-east-1": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, - "es": service{ + "elasticache": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1718,11 +2136,12 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, "fips": endpoint{ - Hostname: "es-fips.us-west-1.amazonaws.com", + Hostname: "elasticache-fips.us-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-1", }, @@ -1735,9 +2154,10 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, - "events": service{ + "elasticbeanstalk": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1747,20 +2167,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "elasticbeanstalk-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "elasticbeanstalk-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "elasticbeanstalk-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "elasticbeanstalk-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "firehose": service{ + "elasticfilesystem": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1770,22 +2216,145 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-af-south-1": endpoint{ + Hostname: "elasticfilesystem-fips.af-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "af-south-1", + }, + }, + "fips-ap-east-1": endpoint{ + Hostname: "elasticfilesystem-fips.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, + "fips-ap-northeast-1": endpoint{ + Hostname: "elasticfilesystem-fips.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "fips-ap-northeast-2": endpoint{ + Hostname: "elasticfilesystem-fips.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "fips-ap-south-1": endpoint{ + Hostname: "elasticfilesystem-fips.ap-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-1", + }, + }, + "fips-ap-southeast-1": endpoint{ + Hostname: "elasticfilesystem-fips.ap-southeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-1", + }, + }, + "fips-ap-southeast-2": endpoint{ + Hostname: "elasticfilesystem-fips.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, + "fips-ca-central-1": endpoint{ + Hostname: "elasticfilesystem-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-eu-central-1": endpoint{ + Hostname: "elasticfilesystem-fips.eu-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-1", + }, + }, + "fips-eu-north-1": endpoint{ + Hostname: "elasticfilesystem-fips.eu-north-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-north-1", + }, + }, + "fips-eu-south-1": endpoint{ + Hostname: "elasticfilesystem-fips.eu-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-south-1", + }, + }, + "fips-eu-west-1": endpoint{ + Hostname: "elasticfilesystem-fips.eu-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-1", + }, + }, + "fips-eu-west-2": endpoint{ + Hostname: "elasticfilesystem-fips.eu-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-2", + }, + }, + "fips-eu-west-3": endpoint{ + Hostname: "elasticfilesystem-fips.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, + "fips-me-south-1": endpoint{ + Hostname: "elasticfilesystem-fips.me-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "me-south-1", + }, + }, + "fips-sa-east-1": endpoint{ + Hostname: "elasticfilesystem-fips.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "elasticfilesystem-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "elasticfilesystem-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "elasticfilesystem-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "elasticfilesystem-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "fms": service{ + "elasticloadbalancing": service{ Defaults: endpoint{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1794,21 +2363,391 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "elasticloadbalancing-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "elasticloadbalancing-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "elasticloadbalancing-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "elasticloadbalancing-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "elasticmapreduce": service{ + Defaults: endpoint{ + SSLCommonName: "{region}.{service}.{dnsSuffix}", + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{ + SSLCommonName: "{service}.{region}.{dnsSuffix}", + }, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "elasticmapreduce-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "elasticmapreduce-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "elasticmapreduce-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "elasticmapreduce-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "elasticmapreduce-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{ + SSLCommonName: "{service}.{region}.{dnsSuffix}", + }, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "elastictranscoder": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-west-1": endpoint{}, "us-east-1": endpoint{}, - "us-east-2": endpoint{}, "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, + "email": service{ + + Endpoints: endpoints{ + "ap-south-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "entitlement.marketplace": service{ + Defaults: endpoint{ + CredentialScope: credentialScope{ + Service: "aws-marketplace", + }, + }, + Endpoints: endpoints{ + "us-east-1": endpoint{}, + }, + }, + "es": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips": endpoint{ + Hostname: "es-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "events": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "events-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "events-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "events-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "events-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "firehose": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "firehose-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "firehose-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "firehose-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "firehose-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "fms": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-ap-northeast-1": endpoint{ + Hostname: "fms-fips.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "fips-ap-northeast-2": endpoint{ + Hostname: "fms-fips.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "fips-ap-south-1": endpoint{ + Hostname: "fms-fips.ap-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-1", + }, + }, + "fips-ap-southeast-1": endpoint{ + Hostname: "fms-fips.ap-southeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-1", + }, + }, + "fips-ap-southeast-2": endpoint{ + Hostname: "fms-fips.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, + "fips-ca-central-1": endpoint{ + Hostname: "fms-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-eu-central-1": endpoint{ + Hostname: "fms-fips.eu-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-1", + }, + }, + "fips-eu-west-1": endpoint{ + Hostname: "fms-fips.eu-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-1", + }, + }, + "fips-eu-west-2": endpoint{ + Hostname: "fms-fips.eu-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-2", + }, + }, + "fips-eu-west-3": endpoint{ + Hostname: "fms-fips.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, + "fips-sa-east-1": endpoint{ + Hostname: "fms-fips.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "fms-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "fms-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "fms-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "fms-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "forecast": service{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1819,7 +2758,11 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1829,13 +2772,18 @@ var awsPartition = partition{ "fsx": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1866,6 +2814,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1875,15 +2824,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "glacier-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "glacier-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "glacier-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "glacier-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "glacier-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "glue": service{ @@ -1901,12 +2881,36 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "glue-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "glue-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "glue-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "glue-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "greengrass": service{ @@ -1931,7 +2935,21 @@ var awsPartition = partition{ "groundstation": service{ Endpoints: endpoints{ - "eu-north-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "fips-us-east-2": endpoint{ + Hostname: "groundstation-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "groundstation-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, "me-south-1": endpoint{}, "us-east-2": endpoint{}, "us-west-2": endpoint{}, @@ -1943,6 +2961,7 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -1952,6 +2971,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1993,6 +3013,12 @@ var awsPartition = partition{ "us-east-1": endpoint{}, }, }, + "honeycode": service{ + + Endpoints: endpoints{ + "us-west-2": endpoint{}, + }, + }, "iam": service{ PartitionEndpoint: "aws-global", IsRegionalized: boxedFalse, @@ -2004,6 +3030,12 @@ var awsPartition = partition{ Region: "us-east-1", }, }, + "iam-fips": endpoint{ + Hostname: "iam-fips.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, }, }, "importexport": service{ @@ -2032,10 +3064,34 @@ var awsPartition = partition{ "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "inspector-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "inspector-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "inspector-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "inspector-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "iot": service{ @@ -2069,6 +3125,7 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, @@ -2159,6 +3216,7 @@ var awsPartition = partition{ "iotsecuredtunneling": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2170,6 +3228,7 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -2218,6 +3277,7 @@ var awsPartition = partition{ "kinesis": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2227,15 +3287,40 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "kinesis-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "kinesis-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "kinesis-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "kinesis-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "kinesisanalytics": service{ @@ -2283,6 +3368,7 @@ var awsPartition = partition{ "kms": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2292,6 +3378,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2313,8 +3400,11 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -2324,6 +3414,7 @@ var awsPartition = partition{ "lambda": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2333,20 +3424,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "lambda-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "lambda-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "lambda-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "lambda-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "license-manager": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2356,15 +3473,40 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "license-manager-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "license-manager-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "license-manager-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "license-manager-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "lightsail": service{ @@ -2385,34 +3527,135 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, - "logs": service{ + "logs": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "logs-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "logs-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "logs-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "logs-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "machinelearning": service{ + + Endpoints: endpoints{ + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + }, + }, + "macie": service{ + + Endpoints: endpoints{ + "fips-us-east-1": endpoint{ + Hostname: "macie-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "macie-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "macie2": service{ + + Endpoints: endpoints{ + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "macie2-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "macie2-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "macie2-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "macie2-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "managedblockchain": service{ Endpoints: endpoints{ - "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "machinelearning": service{ - - Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, }, }, "marketplacecommerceanalytics": service{ @@ -2424,6 +3667,7 @@ var awsPartition = partition{ "mediaconnect": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2451,14 +3695,45 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "mediaconvert-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "mediaconvert-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "mediaconvert-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "mediaconvert-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "mediaconvert-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "medialive": service{ @@ -2489,6 +3764,7 @@ var awsPartition = partition{ "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2507,6 +3783,7 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, }, @@ -2518,6 +3795,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2527,6 +3805,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2541,8 +3820,11 @@ var awsPartition = partition{ "mgh": service{ Endpoints: endpoints{ - "eu-central-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "mobileanalytics": service{ @@ -2558,8 +3840,12 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, }, @@ -2569,6 +3855,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -2578,20 +3865,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "monitoring-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "monitoring-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "monitoring-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "monitoring-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "mq": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2627,11 +3940,12 @@ var awsPartition = partition{ Region: "us-west-2", }, }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "mturk-requester": service{ @@ -2647,6 +3961,12 @@ var awsPartition = partition{ "neptune": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{ + Hostname: "rds.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, "ap-northeast-1": endpoint{ Hostname: "rds.ap-northeast-1.amazonaws.com", CredentialScope: credentialScope{ @@ -2707,12 +4027,24 @@ var awsPartition = partition{ Region: "eu-west-2", }, }, + "eu-west-3": endpoint{ + Hostname: "rds.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, "me-south-1": endpoint{ Hostname: "rds.me-south-1.amazonaws.com", CredentialScope: credentialScope{ Region: "me-south-1", }, }, + "sa-east-1": endpoint{ + Hostname: "rds.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, "us-east-1": endpoint{ Hostname: "rds.us-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -2725,6 +4057,12 @@ var awsPartition = partition{ Region: "us-east-2", }, }, + "us-west-1": endpoint{ + Hostname: "rds.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, "us-west-2": endpoint{ Hostname: "rds.us-west-2.amazonaws.com", CredentialScope: credentialScope{ @@ -2760,6 +4098,12 @@ var awsPartition = partition{ Region: "eu-central-1", }, }, + "eu-north-1": endpoint{ + Hostname: "oidc.eu-north-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-north-1", + }, + }, "eu-west-1": endpoint{ Hostname: "oidc.eu-west-1.amazonaws.com", CredentialScope: credentialScope{ @@ -2837,27 +4181,67 @@ var awsPartition = partition{ Region: "us-east-1", }, }, + "fips-aws-global": endpoint{ + Hostname: "organizations-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, }, }, "outposts": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "outposts-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "outposts-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "outposts-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "outposts-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "outposts-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "pinpoint": service{ @@ -2867,6 +4251,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, @@ -2912,12 +4297,36 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "polly-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "polly-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "polly-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "polly-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "portal.sso": service{ @@ -3008,6 +4417,7 @@ var awsPartition = partition{ "ram": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3017,6 +4427,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -3031,6 +4442,7 @@ var awsPartition = partition{ "rds": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3040,11 +4452,42 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, + "rds-fips.ca-central-1": endpoint{ + Hostname: "rds-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "rds-fips.us-east-1": endpoint{ + Hostname: "rds-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "rds-fips.us-east-2": endpoint{ + Hostname: "rds-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "rds-fips.us-west-1": endpoint{ + Hostname: "rds-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "rds-fips.us-west-2": endpoint{ + Hostname: "rds-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, "us-east-1": endpoint{ SSLCommonName: "{service}.{dnsSuffix}", }, @@ -3056,6 +4499,7 @@ var awsPartition = partition{ "redshift": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3065,15 +4509,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "redshift-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "redshift-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "redshift-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "redshift-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "redshift-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "rekognition": service{ @@ -3087,15 +4562,40 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "rekognition-fips.us-east-1": endpoint{ + Hostname: "rekognition-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "rekognition-fips.us-east-2": endpoint{ + Hostname: "rekognition-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "rekognition-fips.us-west-1": endpoint{ + Hostname: "rekognition-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "rekognition-fips.us-west-2": endpoint{ + Hostname: "rekognition-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "resource-groups": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3105,6 +4605,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -3176,6 +4677,7 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3185,9 +4687,12 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -3201,8 +4706,12 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, }, @@ -3265,7 +4774,8 @@ var awsPartition = partition{ DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ - "ap-east-1": endpoint{}, + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{ Hostname: "s3.ap-northeast-1.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, @@ -3290,6 +4800,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{ Hostname: "s3.eu-west-1.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, @@ -3490,10 +5001,22 @@ var awsPartition = partition{ "schemas": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -3518,6 +5041,7 @@ var awsPartition = partition{ "secretsmanager": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3527,6 +5051,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -3565,6 +5090,7 @@ var awsPartition = partition{ "securityhub": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3574,15 +5100,40 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "securityhub-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "securityhub-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "securityhub-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "securityhub-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "serverlessrepo": service{ @@ -3646,7 +5197,189 @@ var awsPartition = partition{ }, }, }, - "servicecatalog": service{ + "servicecatalog": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-1-fips": endpoint{ + Hostname: "servicecatalog-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "servicecatalog-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "us-west-1": endpoint{}, + "us-west-1-fips": endpoint{ + Hostname: "servicecatalog-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "servicecatalog-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + }, + }, + "servicediscovery": service{ + + Endpoints: endpoints{ + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "servicequotas": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "session.qldb": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "shield": service{ + PartitionEndpoint: "aws-global", + IsRegionalized: boxedFalse, + Defaults: endpoint{ + SSLCommonName: "shield.us-east-1.amazonaws.com", + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "aws-global": endpoint{ + Hostname: "shield.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-aws-global": endpoint{ + Hostname: "shield-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + }, + }, + "sms": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "sms-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "sms-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "sms-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "sms-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "snowball": service{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, @@ -3656,44 +5389,112 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-east-1.amazonaws.com", + "fips-ap-northeast-1": endpoint{ + Hostname: "snowball-fips.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "fips-ap-northeast-2": endpoint{ + Hostname: "snowball-fips.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "fips-ap-south-1": endpoint{ + Hostname: "snowball-fips.ap-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-1", + }, + }, + "fips-ap-southeast-1": endpoint{ + Hostname: "snowball-fips.ap-southeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-1", + }, + }, + "fips-ap-southeast-2": endpoint{ + Hostname: "snowball-fips.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, + "fips-ca-central-1": endpoint{ + Hostname: "snowball-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-eu-central-1": endpoint{ + Hostname: "snowball-fips.eu-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-1", + }, + }, + "fips-eu-west-1": endpoint{ + Hostname: "snowball-fips.eu-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-1", + }, + }, + "fips-eu-west-2": endpoint{ + Hostname: "snowball-fips.eu-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-2", + }, + }, + "fips-eu-west-3": endpoint{ + Hostname: "snowball-fips.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, + "fips-sa-east-1": endpoint{ + Hostname: "snowball-fips.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "snowball-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-1", }, }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "servicecatalog-fips.us-east-2.amazonaws.com", + "fips-us-east-2": endpoint{ + Hostname: "snowball-fips.us-east-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-2", }, }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-west-1.amazonaws.com", + "fips-us-west-1": endpoint{ + Hostname: "snowball-fips.us-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-1", }, }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "servicecatalog-fips.us-west-2.amazonaws.com", + "fips-us-west-2": endpoint{ + Hostname: "snowball-fips.us-west-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-2", }, }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "servicediscovery": service{ - + "sns": service{ + Defaults: endpoint{ + Protocols: []string{"http", "https"}, + }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3703,44 +5504,49 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "session.qldb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "sns-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "sns-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "sns-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "sns-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "shield": service{ - IsRegionalized: boxedFalse, + "sqs": service{ Defaults: endpoint{ - SSLCommonName: "shield.us-east-1.amazonaws.com", - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-east-1": endpoint{}, + SSLCommonName: "{region}.queue.{dnsSuffix}", + Protocols: []string{"http", "https"}, }, - }, - "sms": service{ - Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3750,42 +5556,48 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "sqs-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "sqs-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "sqs-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "sqs-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{ + SSLCommonName: "queue.{dnsSuffix}", + }, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "snowball": service{ + "ssm": service{ Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "sns": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3795,23 +5607,70 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "ssm-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ssm-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ssm-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "ssm-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "ssm-facade-fips-us-east-1": endpoint{ + Hostname: "ssm-facade-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "ssm-facade-fips-us-east-2": endpoint{ + Hostname: "ssm-facade-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "ssm-facade-fips-us-west-1": endpoint{ + Hostname: "ssm-facade-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "ssm-facade-fips-us-west-2": endpoint{ + Hostname: "ssm-facade-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, - "sqs": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - }, + "states": service{ + Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3821,92 +5680,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, "fips-us-east-1": endpoint{ - Hostname: "sqs-fips.us-east-1.amazonaws.com", + Hostname: "states-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-1", }, }, "fips-us-east-2": endpoint{ - Hostname: "sqs-fips.us-east-2.amazonaws.com", + Hostname: "states-fips.us-east-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-2", }, }, "fips-us-west-1": endpoint{ - Hostname: "sqs-fips.us-west-1.amazonaws.com", + Hostname: "states-fips.us-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-1", }, }, "fips-us-west-2": endpoint{ - Hostname: "sqs-fips.us-west-2.amazonaws.com", + Hostname: "states-fips.us-west-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-2", }, }, "me-south-1": endpoint{}, "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - SSLCommonName: "queue.{dnsSuffix}", - }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "storagegateway": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -3916,15 +5729,22 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips": endpoint{ + Hostname: "storagegateway-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "streams.dynamodb": service{ @@ -3995,6 +5815,7 @@ var awsPartition = partition{ PartitionEndpoint: "aws-global", Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -4010,6 +5831,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -4060,6 +5882,7 @@ var awsPartition = partition{ "swf": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -4069,20 +5892,46 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "swf-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "swf-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "swf-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "swf-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "tagging": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -4092,6 +5941,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -4119,12 +5969,36 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "fips.transcribe.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "fips.transcribe.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "fips.transcribe.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "fips.transcribe.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "transcribestreaming": service{ @@ -4183,55 +6057,261 @@ var awsPartition = partition{ Region: "us-east-1", }, }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "translate-fips.us-east-2.amazonaws.com", + "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "translate-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "translate-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + }, + }, + "waf": service{ + PartitionEndpoint: "aws-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-fips": endpoint{ + Hostname: "waf-fips.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "aws-global": endpoint{ + Hostname: "waf.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + }, + }, + "waf-regional": service{ + + Endpoints: endpoints{ + "ap-east-1": endpoint{ + Hostname: "waf-regional.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, + "ap-northeast-1": endpoint{ + Hostname: "waf-regional.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "ap-northeast-2": endpoint{ + Hostname: "waf-regional.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "ap-south-1": endpoint{ + Hostname: "waf-regional.ap-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-1", + }, + }, + "ap-southeast-1": endpoint{ + Hostname: "waf-regional.ap-southeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-1", + }, + }, + "ap-southeast-2": endpoint{ + Hostname: "waf-regional.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, + "ca-central-1": endpoint{ + Hostname: "waf-regional.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "eu-central-1": endpoint{ + Hostname: "waf-regional.eu-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-1", + }, + }, + "eu-north-1": endpoint{ + Hostname: "waf-regional.eu-north-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-north-1", + }, + }, + "eu-west-1": endpoint{ + Hostname: "waf-regional.eu-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-1", + }, + }, + "eu-west-2": endpoint{ + Hostname: "waf-regional.eu-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-2", + }, + }, + "eu-west-3": endpoint{ + Hostname: "waf-regional.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, + "fips-ap-east-1": endpoint{ + Hostname: "waf-regional-fips.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, + "fips-ap-northeast-1": endpoint{ + Hostname: "waf-regional-fips.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "fips-ap-northeast-2": endpoint{ + Hostname: "waf-regional-fips.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "fips-ap-south-1": endpoint{ + Hostname: "waf-regional-fips.ap-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-1", + }, + }, + "fips-ap-southeast-1": endpoint{ + Hostname: "waf-regional-fips.ap-southeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-1", + }, + }, + "fips-ap-southeast-2": endpoint{ + Hostname: "waf-regional-fips.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, + "fips-ca-central-1": endpoint{ + Hostname: "waf-regional-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-eu-central-1": endpoint{ + Hostname: "waf-regional-fips.eu-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-central-1", + }, + }, + "fips-eu-north-1": endpoint{ + Hostname: "waf-regional-fips.eu-north-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-north-1", + }, + }, + "fips-eu-west-1": endpoint{ + Hostname: "waf-regional-fips.eu-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-1", + }, + }, + "fips-eu-west-2": endpoint{ + Hostname: "waf-regional-fips.eu-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-2", + }, + }, + "fips-eu-west-3": endpoint{ + Hostname: "waf-regional-fips.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, + "fips-me-south-1": endpoint{ + Hostname: "waf-regional-fips.me-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "me-south-1", + }, + }, + "fips-sa-east-1": endpoint{ + Hostname: "waf-regional-fips.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "waf-regional-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "waf-regional-fips.us-east-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-2", }, }, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "translate-fips.us-west-2.amazonaws.com", + "fips-us-west-1": endpoint{ + Hostname: "waf-regional-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "waf-regional-fips.us-west-2.amazonaws.com", CredentialScope: credentialScope{ Region: "us-west-2", }, }, - }, - }, - "waf": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "waf.amazonaws.com", + "me-south-1": endpoint{ + Hostname: "waf-regional.me-south-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "me-south-1", + }, + }, + "sa-east-1": endpoint{ + Hostname: "waf-regional.sa-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "sa-east-1", + }, + }, + "us-east-1": endpoint{ + Hostname: "waf-regional.us-east-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-1", }, }, - }, - }, - "waf-regional": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-2": endpoint{ + Hostname: "waf-regional.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "us-west-1": endpoint{ + Hostname: "waf-regional.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "us-west-2": endpoint{ + Hostname: "waf-regional.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "workdocs": service{ @@ -4241,8 +6321,20 @@ var awsPartition = partition{ "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "workdocs-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "workdocs-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "workmail": service{ @@ -4274,6 +6366,7 @@ var awsPartition = partition{ "xray": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -4283,6 +6376,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -4326,6 +6420,20 @@ var awscnPartition = partition{ }, }, Services: services{ + "access-analyzer": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, + "acm": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "api.ecr": service{ Endpoints: endpoints{ @@ -4343,6 +6451,13 @@ var awscnPartition = partition{ }, }, }, + "api.sagemaker": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "apigateway": service{ Endpoints: endpoints{ @@ -4368,6 +6483,7 @@ var awscnPartition = partition{ "athena": service{ Endpoints: endpoints{ + "cn-north-1": endpoint{}, "cn-northwest-1": endpoint{}, }, }, @@ -4380,6 +6496,22 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "autoscaling-plans": service{ + Defaults: endpoint{ + Protocols: []string{"http", "https"}, + }, + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, + "backup": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "batch": service{ Endpoints: endpoints{ @@ -4387,6 +6519,32 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "budgets": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "budgets.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, + "ce": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "ce.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, "cloudformation": service{ Endpoints: endpoints{ @@ -4422,6 +6580,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "codecommit": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "codedeploy": service{ Endpoints: endpoints{ @@ -4442,6 +6607,12 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "cur": service{ + + Endpoints: endpoints{ + "cn-northwest-1": endpoint{}, + }, + }, "dax": service{ Endpoints: endpoints{ @@ -4505,6 +6676,15 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "eks": service{ + Defaults: endpoint{ + Protocols: []string{"http", "https"}, + }, + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "elasticache": service{ Endpoints: endpoints{ @@ -4524,6 +6704,18 @@ var awscnPartition = partition{ Endpoints: endpoints{ "cn-north-1": endpoint{}, "cn-northwest-1": endpoint{}, + "fips-cn-north-1": endpoint{ + Hostname: "elasticfilesystem-fips.cn-north-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-north-1", + }, + }, + "fips-cn-northwest-1": endpoint{ + Hostname: "elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, }, }, "elasticloadbalancing": service{ @@ -4583,6 +6775,7 @@ var awscnPartition = partition{ "glue": service{ Endpoints: endpoints{ + "cn-north-1": endpoint{}, "cn-northwest-1": endpoint{}, }, }, @@ -4626,6 +6819,20 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "iotsecuredtunneling": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, + "kafka": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "kinesis": service{ Endpoints: endpoints{ @@ -4633,6 +6840,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "kinesisanalytics": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "kms": service{ Endpoints: endpoints{ @@ -4692,6 +6906,25 @@ var awscnPartition = partition{ }, }, }, + "organizations": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "organizations.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + "fips-aws-cn-global": endpoint{ + Hostname: "organizations.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, "polly": service{ Endpoints: endpoints{ @@ -4712,10 +6945,33 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "route53": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "route53.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, + "runtime.sagemaker": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "s3": service{ Defaults: endpoint{ Protocols: []string{"http", "https"}, SignatureVersions: []string{"s3v4"}, + + HasDualStack: boxedTrue, + DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ "cn-north-1": endpoint{}, @@ -4726,6 +6982,9 @@ var awscnPartition = partition{ Defaults: endpoint{ Protocols: []string{"https"}, SignatureVersions: []string{"s3v4"}, + + HasDualStack: boxedTrue, + DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ "cn-north-1": endpoint{ @@ -4774,7 +7033,20 @@ var awscnPartition = partition{ "snowball": service{ Endpoints: endpoints{ - "cn-north-1": endpoint{}, + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + "fips-cn-north-1": endpoint{ + Hostname: "snowball-fips.cn-north-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-north-1", + }, + }, + "fips-cn-northwest-1": endpoint{ + Hostname: "snowball-fips.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, }, }, "sns": service{ @@ -4813,7 +7085,8 @@ var awscnPartition = partition{ "storagegateway": service{ Endpoints: endpoints{ - "cn-north-1": endpoint{}, + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, }, }, "streams.dynamodb": service{ @@ -4921,10 +7194,27 @@ var awsusgovPartition = partition{ Description: "AWS GovCloud (US-East)", }, "us-gov-west-1": region{ - Description: "AWS GovCloud (US)", + Description: "AWS GovCloud (US-West)", }, }, Services: services{ + "access-analyzer": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{ + Hostname: "access-analyzer.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "access-analyzer.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "acm": service{ Endpoints: endpoints{ @@ -4937,6 +7227,18 @@ var awsusgovPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "acm-pca.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "acm-pca.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -4944,6 +7246,18 @@ var awsusgovPartition = partition{ "api.ecr": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "ecr-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "ecr-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{ Hostname: "api.ecr.us-gov-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -4962,6 +7276,18 @@ var awsusgovPartition = partition{ Endpoints: endpoints{ "us-gov-west-1": endpoint{}, + "us-gov-west-1-fips": endpoint{ + Hostname: "api-fips.sagemaker.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-west-1-fips-secondary": endpoint{ + Hostname: "api.sagemaker.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "apigateway": service{ @@ -5004,6 +7330,18 @@ var awsusgovPartition = partition{ "athena": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "athena-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "athena-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5011,7 +7349,9 @@ var awsusgovPartition = partition{ "autoscaling": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, + "us-gov-east-1": endpoint{ + Protocols: []string{"http", "https"}, + }, "us-gov-west-1": endpoint{ Protocols: []string{"http", "https"}, }, @@ -5026,19 +7366,55 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, - "clouddirectory": service{ + "backup": service{ Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, - "cloudformation": service{ + "batch": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "batch.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "batch.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, + "clouddirectory": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, + "cloudformation": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{ + Hostname: "cloudformation.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "cloudformation.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "cloudhsm": service{ Endpoints: endpoints{ @@ -5059,20 +7435,48 @@ var awsusgovPartition = partition{ "cloudtrail": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "cloudtrail.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "cloudtrail.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "codebuild": service{ Endpoints: endpoints{ "us-gov-east-1": endpoint{}, + "us-gov-east-1-fips": endpoint{ + Hostname: "codebuild-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{}, + "us-gov-west-1-fips": endpoint{ + Hostname: "codebuild-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "codecommit": service{ Endpoints: endpoints{ + "fips": endpoint{ + Hostname: "codecommit-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5096,17 +7500,59 @@ var awsusgovPartition = partition{ }, }, }, + "codepipeline": service{ + + Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "codepipeline-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-west-1": endpoint{}, + }, + }, + "cognito-identity": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, + "cognito-idp": service{ + + Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "cognito-idp-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-west-1": endpoint{}, + }, + }, "comprehend": service{ Defaults: endpoint{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "comprehend-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, "comprehendmedical": service{ Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "comprehendmedical-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, @@ -5120,6 +7566,12 @@ var awsusgovPartition = partition{ "datasync": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "datasync-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "fips-us-gov-west-1": endpoint{ Hostname: "datasync-fips.us-gov-west-1.amazonaws.com", CredentialScope: credentialScope{ @@ -5133,20 +7585,59 @@ var awsusgovPartition = partition{ "directconnect": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "directconnect.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "directconnect.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "dms": service{ Endpoints: endpoints{ + "dms-fips": endpoint{ + Hostname: "dms.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, + "docdb": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{ + Hostname: "rds.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "ds": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "ds-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "ds-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5170,13 +7661,23 @@ var awsusgovPartition = partition{ }, }, }, - "ec2": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, + "ec2": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{ + Hostname: "ec2.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "ec2.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "ec2metadata": service{ PartitionEndpoint: "aws-global", IsRegionalized: boxedFalse, @@ -5190,6 +7691,27 @@ var awsusgovPartition = partition{ }, "ecs": service{ + Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "ecs-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "ecs-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, + "eks": service{ + Defaults: endpoint{ + Protocols: []string{"http", "https"}, + }, Endpoints: endpoints{ "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, @@ -5199,7 +7721,7 @@ var awsusgovPartition = partition{ Endpoints: endpoints{ "fips": endpoint{ - Hostname: "elasticache-fips.us-gov-west-1.amazonaws.com", + Hostname: "elasticache.us-gov-west-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-gov-west-1", }, @@ -5211,19 +7733,54 @@ var awsusgovPartition = partition{ "elasticbeanstalk": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "elasticbeanstalk.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "elasticbeanstalk.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "elasticfilesystem": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "elasticfilesystem-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "elasticfilesystem-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, "elasticloadbalancing": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "elasticloadbalancing-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "elasticloadbalancing-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{ Protocols: []string{"http", "https"}, @@ -5233,12 +7790,36 @@ var awsusgovPartition = partition{ "elasticmapreduce": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "elasticmapreduce.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "elasticmapreduce.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{ Protocols: []string{"https"}, }, }, }, + "email": service{ + + Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "email-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-west-1": endpoint{}, + }, + }, "es": service{ Endpoints: endpoints{ @@ -5255,13 +7836,35 @@ var awsusgovPartition = partition{ "events": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "events.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "events.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "firehose": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "firehose-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "firehose-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5269,15 +7872,36 @@ var awsusgovPartition = partition{ "glacier": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "glacier.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{ + Hostname: "glacier.us-gov-west-1.amazonaws.com", Protocols: []string{"http", "https"}, + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, }, }, }, "glue": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "glue-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "glue-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5288,7 +7912,12 @@ var awsusgovPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, + "us-gov-west-1": endpoint{ + Hostname: "greengrass.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "guardduty": service{ @@ -5298,6 +7927,12 @@ var awsusgovPartition = partition{ }, Endpoints: endpoints{ "us-gov-west-1": endpoint{}, + "us-gov-west-1-fips": endpoint{ + Hostname: "guardduty.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "health": service{ @@ -5317,11 +7952,29 @@ var awsusgovPartition = partition{ Region: "us-gov-west-1", }, }, + "iam-govcloud-fips": endpoint{ + Hostname: "iam.us-gov.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "inspector": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "inspector-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "inspector-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5336,8 +7989,40 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "iotsecuredtunneling": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, + "kafka": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "kinesis": service{ + Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "kinesis-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "kinesis-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, + "kinesisanalytics": service{ + Endpoints: endpoints{ "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, @@ -5359,6 +8044,18 @@ var awsusgovPartition = partition{ "lambda": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "lambda-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "lambda-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5366,6 +8063,18 @@ var awsusgovPartition = partition{ "license-manager": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "license-manager-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "license-manager-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5373,14 +8082,29 @@ var awsusgovPartition = partition{ "logs": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "logs.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "logs.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "mediaconvert": service{ Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, + "us-gov-west-1": endpoint{ + Hostname: "mediaconvert.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "metering.marketplace": service{ @@ -5397,6 +8121,18 @@ var awsusgovPartition = partition{ "monitoring": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "monitoring.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "monitoring.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5429,11 +8165,50 @@ var awsusgovPartition = partition{ Region: "us-gov-west-1", }, }, + "fips-aws-us-gov-global": endpoint{ + Hostname: "organizations.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, + "outposts": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{ + Hostname: "outposts.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "outposts.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, + "pinpoint": service{ + Defaults: endpoint{ + CredentialScope: credentialScope{ + Service: "mobiletargeting", + }, + }, + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, }, }, "polly": service{ Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "polly-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, @@ -5447,6 +8222,18 @@ var awsusgovPartition = partition{ "rds": service{ Endpoints: endpoints{ + "rds.us-gov-east-1": endpoint{ + Hostname: "rds.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "rds.us-gov-west-1": endpoint{ + Hostname: "rds.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5454,13 +8241,29 @@ var awsusgovPartition = partition{ "redshift": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "redshift.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "redshift.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "rekognition": service{ Endpoints: endpoints{ + "rekognition-fips.us-gov-west-1": endpoint{ + Hostname: "rekognition-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, @@ -5512,6 +8315,9 @@ var awsusgovPartition = partition{ "s3": service{ Defaults: endpoint{ SignatureVersions: []string{"s3", "s3v4"}, + + HasDualStack: boxedTrue, + DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ "fips-us-gov-west-1": endpoint{ @@ -5534,6 +8340,9 @@ var awsusgovPartition = partition{ Defaults: endpoint{ Protocols: []string{"https"}, SignatureVersions: []string{"s3v4"}, + + HasDualStack: boxedTrue, + DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ "us-gov-east-1": endpoint{ @@ -5585,22 +8394,56 @@ var awsusgovPartition = partition{ }, }, }, + "securityhub": service{ + + Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "securityhub-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "securityhub-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "serverlessrepo": service{ Defaults: endpoint{ Protocols: []string{"https"}, }, Endpoints: endpoints{ "us-gov-east-1": endpoint{ + Hostname: "serverlessrepo.us-gov-east-1.amazonaws.com", Protocols: []string{"https"}, + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, }, "us-gov-west-1": endpoint{ + Hostname: "serverlessrepo.us-gov-west-1.amazonaws.com", Protocols: []string{"https"}, + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, }, }, }, "servicecatalog": service{ Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-east-1-fips": endpoint{ + Hostname: "servicecatalog-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{}, "us-gov-west-1-fips": endpoint{ Hostname: "servicecatalog-fips.us-gov-west-1.amazonaws.com", @@ -5613,6 +8456,18 @@ var awsusgovPartition = partition{ "sms": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "sms-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "sms-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5620,6 +8475,18 @@ var awsusgovPartition = partition{ "snowball": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "snowball-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "snowball-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5627,25 +8494,67 @@ var awsusgovPartition = partition{ "sns": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "sns.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{ + Hostname: "sns.us-gov-west-1.amazonaws.com", Protocols: []string{"http", "https"}, + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, }, }, }, "sqs": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "sqs.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{ + Hostname: "sqs.us-gov-west-1.amazonaws.com", SSLCommonName: "{region}.queue.{dnsSuffix}", Protocols: []string{"http", "https"}, + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, }, }, }, "ssm": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "ssm.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "ssm.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "ssm-facade-fips-us-gov-east-1": endpoint{ + Hostname: "ssm-facade.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "ssm-facade-fips-us-gov-west-1": endpoint{ + Hostname: "ssm-facade.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5653,6 +8562,18 @@ var awsusgovPartition = partition{ "states": service{ Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "states-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "states.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5660,6 +8581,13 @@ var awsusgovPartition = partition{ "storagegateway": service{ Endpoints: endpoints{ + "fips": endpoint{ + Hostname: "storagegateway-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, @@ -5690,14 +8618,54 @@ var awsusgovPartition = partition{ Endpoints: endpoints{ "us-gov-east-1": endpoint{}, + "us-gov-east-1-fips": endpoint{ + Hostname: "sts.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{}, + "us-gov-west-1-fips": endpoint{ + Hostname: "sts.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, + "support": service{ + PartitionEndpoint: "aws-us-gov-global", + + Endpoints: endpoints{ + "aws-us-gov-global": endpoint{ + Hostname: "support.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "support.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "swf": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Hostname: "swf.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "swf.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "tagging": service{ @@ -5712,6 +8680,18 @@ var awsusgovPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "fips.transcribe.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "fips.transcribe.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -5733,7 +8713,18 @@ var awsusgovPartition = partition{ "waf-regional": service{ Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, + "fips-us-gov-west-1": endpoint{ + Hostname: "waf-regional-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-west-1": endpoint{ + Hostname: "waf-regional.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "workspaces": service{ @@ -5742,6 +8733,13 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "xray": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, }, } @@ -5828,6 +8826,14 @@ var awsisoPartition = partition{ "us-iso-east-1": endpoint{}, }, }, + "comprehend": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "us-iso-east-1": endpoint{}, + }, + }, "config": service{ Endpoints: endpoints{ @@ -5849,6 +8855,12 @@ var awsisoPartition = partition{ "dms": service{ Endpoints: endpoints{ + "dms-fips": endpoint{ + Hostname: "dms.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + }, "us-iso-east-1": endpoint{}, }, }, @@ -5911,6 +8923,12 @@ var awsisoPartition = partition{ }, }, }, + "es": service{ + + Endpoints: endpoints{ + "us-iso-east-1": endpoint{}, + }, + }, "events": service{ Endpoints: endpoints{ @@ -6087,6 +9105,20 @@ var awsisoPartition = partition{ "us-iso-east-1": endpoint{}, }, }, + "transcribe": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "us-iso-east-1": endpoint{}, + }, + }, + "transcribestreaming": service{ + + Endpoints: endpoints{ + "us-iso-east-1": endpoint{}, + }, + }, "workspaces": service{ Endpoints: endpoints{ @@ -6165,6 +9197,12 @@ var awsisobPartition = partition{ "dms": service{ Endpoints: endpoints{ + "dms-fips": endpoint{ + Hostname: "dms.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + }, "us-isob-east-1": endpoint{}, }, }, @@ -6264,6 +9302,18 @@ var awsisobPartition = partition{ "us-isob-east-1": endpoint{}, }, }, + "lambda": service{ + + Endpoints: endpoints{ + "us-isob-east-1": endpoint{}, + }, + }, + "license-manager": service{ + + Endpoints: endpoints{ + "us-isob-east-1": endpoint{}, + }, + }, "logs": service{ Endpoints: endpoints{ @@ -6320,6 +9370,12 @@ var awsisobPartition = partition{ "us-isob-east-1": endpoint{}, }, }, + "ssm": service{ + + Endpoints: endpoints{ + "us-isob-east-1": endpoint{}, + }, + }, "states": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go index eb2ac83c9..773613722 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go @@ -7,6 +7,8 @@ import ( "strings" ) +var regionValidationRegex = regexp.MustCompile(`^[[:alnum:]]([[:alnum:]\-]*[[:alnum:]])?$`) + type partitions []partition func (ps partitions) EndpointFor(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) { @@ -124,7 +126,7 @@ func (p partition) EndpointFor(service, region string, opts ...func(*Options)) ( defs := []endpoint{p.Defaults, s.Defaults} - return e.resolve(service, p.ID, region, p.DNSSuffix, defs, opt), nil + return e.resolve(service, p.ID, region, p.DNSSuffix, defs, opt) } func serviceList(ss services) []string { @@ -233,7 +235,7 @@ func getByPriority(s []string, p []string, def string) string { return s[0] } -func (e endpoint) resolve(service, partitionID, region, dnsSuffix string, defs []endpoint, opts Options) ResolvedEndpoint { +func (e endpoint) resolve(service, partitionID, region, dnsSuffix string, defs []endpoint, opts Options) (ResolvedEndpoint, error) { var merged endpoint for _, def := range defs { merged.mergeIn(def) @@ -260,6 +262,10 @@ func (e endpoint) resolve(service, partitionID, region, dnsSuffix string, defs [ region = signingRegion } + if !validateInputRegion(region) { + return ResolvedEndpoint{}, fmt.Errorf("invalid region identifier format provided") + } + u := strings.Replace(hostname, "{service}", service, 1) u = strings.Replace(u, "{region}", region, 1) u = strings.Replace(u, "{dnsSuffix}", dnsSuffix, 1) @@ -274,7 +280,7 @@ func (e endpoint) resolve(service, partitionID, region, dnsSuffix string, defs [ SigningName: signingName, SigningNameDerived: signingNameDerived, SigningMethod: getByPriority(e.SignatureVersions, signerPriority, defaultSigner), - } + }, nil } func getEndpointScheme(protocols []string, disableSSL bool) string { @@ -339,3 +345,7 @@ const ( boxedFalse boxedTrue ) + +func validateInputRegion(region string) bool { + return regionValidationRegex.MatchString(region) +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go index 59da73ed4..d597c6ead 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go @@ -135,8 +135,6 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers, err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err) } - SanitizeHostForHeader(httpReq) - r := &Request{ Config: cfg, ClientInfo: clientInfo, @@ -426,6 +424,8 @@ func (r *Request) Sign() error { return r.Error } + SanitizeHostForHeader(r.HTTPRequest) + r.Handlers.Sign.Run(r) return r.Error } @@ -639,6 +639,10 @@ func getHost(r *http.Request) string { return r.Host } + if r.URL == nil { + return "" + } + return r.URL.Host } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go index 1b61dec9c..752ae47f8 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go @@ -92,6 +92,7 @@ var throttleCodes = map[string]struct{}{ "TooManyRequestsException": {}, // Lambda functions "PriorRequestNotComplete": {}, // Route53 "TransactionInProgressException": {}, + "EC2ThrottledException": {}, // EC2 } // credsExpiredCodes is a collection of error codes which signify the credentials diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go index cc64e24f1..fe6dac1f4 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go @@ -3,6 +3,7 @@ package session import ( "fmt" "os" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -206,7 +207,14 @@ func credsFromAssumeRole(cfg aws.Config, sharedCfg.RoleARN, func(opt *stscreds.AssumeRoleProvider) { opt.RoleSessionName = sharedCfg.RoleSessionName - opt.Duration = sessOpts.AssumeRoleDuration + + if sessOpts.AssumeRoleDuration == 0 && + sharedCfg.AssumeRoleDuration != nil && + *sharedCfg.AssumeRoleDuration/time.Minute > 15 { + opt.Duration = *sharedCfg.AssumeRoleDuration + } else if sessOpts.AssumeRoleDuration != 0 { + opt.Duration = sessOpts.AssumeRoleDuration + } // Assume role with external ID if len(sharedCfg.ExternalID) > 0 { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go index a8ed88076..680805a38 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go @@ -2,6 +2,7 @@ package session import ( "fmt" + "time" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/credentials" @@ -16,12 +17,13 @@ const ( sessionTokenKey = `aws_session_token` // optional // Assume Role Credentials group - roleArnKey = `role_arn` // group required - sourceProfileKey = `source_profile` // group required (or credential_source) - credentialSourceKey = `credential_source` // group required (or source_profile) - externalIDKey = `external_id` // optional - mfaSerialKey = `mfa_serial` // optional - roleSessionNameKey = `role_session_name` // optional + roleArnKey = `role_arn` // group required + sourceProfileKey = `source_profile` // group required (or credential_source) + credentialSourceKey = `credential_source` // group required (or source_profile) + externalIDKey = `external_id` // optional + mfaSerialKey = `mfa_serial` // optional + roleSessionNameKey = `role_session_name` // optional + roleDurationSecondsKey = "duration_seconds" // optional // CSM options csmEnabledKey = `csm_enabled` @@ -73,10 +75,11 @@ type sharedConfig struct { CredentialProcess string WebIdentityTokenFile string - RoleARN string - RoleSessionName string - ExternalID string - MFASerial string + RoleARN string + RoleSessionName string + ExternalID string + MFASerial string + AssumeRoleDuration *time.Duration SourceProfileName string SourceProfile *sharedConfig @@ -274,6 +277,11 @@ func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile, e updateString(&cfg.CredentialSource, section, credentialSourceKey) updateString(&cfg.Region, section, regionKey) + if section.Has(roleDurationSecondsKey) { + d := time.Duration(section.Int(roleDurationSecondsKey)) * time.Second + cfg.AssumeRoleDuration = &d + } + if v := section.String(stsRegionalEndpointSharedKey); len(v) != 0 { sre, err := endpoints.GetSTSRegionalEndpoint(v) if err != nil { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go new file mode 100644 index 000000000..f35fc860b --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go @@ -0,0 +1,13 @@ +// +build !go1.7 + +package v4 + +import ( + "net/http" + + "github.com/aws/aws-sdk-go/aws" +) + +func requestContext(r *http.Request) aws.Context { + return aws.BackgroundContext() +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go new file mode 100644 index 000000000..fed5c859c --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go @@ -0,0 +1,13 @@ +// +build go1.7 + +package v4 + +import ( + "net/http" + + "github.com/aws/aws-sdk-go/aws" +) + +func requestContext(r *http.Request) aws.Context { + return r.Context() +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go index b97334c7f..d71f7b3f4 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go @@ -340,7 +340,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi } var err error - ctx.credValues, err = v4.Credentials.Get() + ctx.credValues, err = v4.Credentials.GetWithContext(requestContext(r)) if err != nil { return http.Header{}, err } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/types.go b/vendor/github.com/aws/aws-sdk-go/aws/types.go index d542ef01b..98751ee84 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/types.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/types.go @@ -239,3 +239,26 @@ func (es errors) Error() string { return strings.Join(parts, "\n") } + +// CopySeekableBody copies the seekable body to an io.Writer +func CopySeekableBody(dst io.Writer, src io.ReadSeeker) (int64, error) { + curPos, err := src.Seek(0, sdkio.SeekCurrent) + if err != nil { + return 0, err + } + + // copy errors may be assumed to be from the body. + n, err := io.Copy(dst, src) + if err != nil { + return n, err + } + + // seek back to the first position after reading to reset + // the body for transmission. + _, err = src.Seek(curPos, sdkio.SeekStart) + if err != nil { + return n, err + } + + return n, nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 2c55fd165..08127d60d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.28.9" +const SDKVersion = "1.34.0" diff --git a/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go b/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go new file mode 100644 index 000000000..876dcb3fd --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go @@ -0,0 +1,40 @@ +// +build !go1.7 + +package context + +import "time" + +// An emptyCtx is a copy of the Go 1.7 context.emptyCtx type. This is copied to +// provide a 1.6 and 1.5 safe version of context that is compatible with Go +// 1.7's Context. +// +// An emptyCtx is never canceled, has no values, and has no deadline. It is not +// struct{}, since vars of this type must have distinct addresses. +type emptyCtx int + +func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { + return +} + +func (*emptyCtx) Done() <-chan struct{} { + return nil +} + +func (*emptyCtx) Err() error { + return nil +} + +func (*emptyCtx) Value(key interface{}) interface{} { + return nil +} + +func (e *emptyCtx) String() string { + switch e { + case BackgroundCtx: + return "aws.BackgroundContext" + } + return "unknown empty Context" +} + +// BackgroundCtx is the common base context. +var BackgroundCtx = new(emptyCtx) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE new file mode 100644 index 000000000..6a66aea5e --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go new file mode 100644 index 000000000..14ad0c589 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go @@ -0,0 +1,120 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package singleflight provides a duplicate function call suppression +// mechanism. +package singleflight + +import "sync" + +// call is an in-flight or completed singleflight.Do call +type call struct { + wg sync.WaitGroup + + // These fields are written once before the WaitGroup is done + // and are only read after the WaitGroup is done. + val interface{} + err error + + // forgotten indicates whether Forget was called with this call's key + // while the call was still in flight. + forgotten bool + + // These fields are read and written with the singleflight + // mutex held before the WaitGroup is done, and are read but + // not written after the WaitGroup is done. + dups int + chans []chan<- Result +} + +// Group represents a class of work and forms a namespace in +// which units of work can be executed with duplicate suppression. +type Group struct { + mu sync.Mutex // protects m + m map[string]*call // lazily initialized +} + +// Result holds the results of Do, so they can be passed +// on a channel. +type Result struct { + Val interface{} + Err error + Shared bool +} + +// Do executes and returns the results of the given function, making +// sure that only one execution is in-flight for a given key at a +// time. If a duplicate comes in, the duplicate caller waits for the +// original to complete and receives the same results. +// The return value shared indicates whether v was given to multiple callers. +func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool) { + g.mu.Lock() + if g.m == nil { + g.m = make(map[string]*call) + } + if c, ok := g.m[key]; ok { + c.dups++ + g.mu.Unlock() + c.wg.Wait() + return c.val, c.err, true + } + c := new(call) + c.wg.Add(1) + g.m[key] = c + g.mu.Unlock() + + g.doCall(c, key, fn) + return c.val, c.err, c.dups > 0 +} + +// DoChan is like Do but returns a channel that will receive the +// results when they are ready. +func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result { + ch := make(chan Result, 1) + g.mu.Lock() + if g.m == nil { + g.m = make(map[string]*call) + } + if c, ok := g.m[key]; ok { + c.dups++ + c.chans = append(c.chans, ch) + g.mu.Unlock() + return ch + } + c := &call{chans: []chan<- Result{ch}} + c.wg.Add(1) + g.m[key] = c + g.mu.Unlock() + + go g.doCall(c, key, fn) + + return ch +} + +// doCall handles the single call for a key. +func (g *Group) doCall(c *call, key string, fn func() (interface{}, error)) { + c.val, c.err = fn() + c.wg.Done() + + g.mu.Lock() + if !c.forgotten { + delete(g.m, key) + } + for _, ch := range c.chans { + ch <- Result{c.val, c.err, c.dups > 0} + } + g.mu.Unlock() +} + +// Forget tells the singleflight to forget about a key. Future calls +// to Do for this key will call the function rather than waiting for +// an earlier call to complete. +func (g *Group) Forget(key string) { + g.mu.Lock() + if c, ok := g.m[key]; ok { + c.forgotten = true + } + delete(g.m, key) + g.mu.Unlock() +} diff --git a/vendor/github.com/aws/aws-sdk-go/private/checksum/content_md5.go b/vendor/github.com/aws/aws-sdk-go/private/checksum/content_md5.go new file mode 100644 index 000000000..e045f38d8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/checksum/content_md5.go @@ -0,0 +1,53 @@ +package checksum + +import ( + "crypto/md5" + "encoding/base64" + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/request" +) + +const contentMD5Header = "Content-Md5" + +// AddBodyContentMD5Handler computes and sets the HTTP Content-MD5 header for requests that +// require it. +func AddBodyContentMD5Handler(r *request.Request) { + // if Content-MD5 header is already present, return + if v := r.HTTPRequest.Header.Get(contentMD5Header); len(v) != 0 { + return + } + + // if S3DisableContentMD5Validation flag is set, return + if aws.BoolValue(r.Config.S3DisableContentMD5Validation) { + return + } + + // if request is presigned, return + if r.IsPresigned() { + return + } + + // if body is not seekable, return + if !aws.IsReaderSeekable(r.Body) { + if r.Config.Logger != nil { + r.Config.Logger.Log(fmt.Sprintf( + "Unable to compute Content-MD5 for unseekable body, S3.%s", + r.Operation.Name)) + } + return + } + + h := md5.New() + + if _, err := aws.CopySeekableBody(h, r.Body); err != nil { + r.Error = awserr.New("ContentMD5", "failed to compute body MD5", err) + return + } + + // encode the md5 checksum in base64 and set the request header. + v := base64.StdEncoding.EncodeToString(h.Sum(nil)) + r.HTTPRequest.Header.Set(contentMD5Header, v) +} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/reader.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/reader.go index bb8ea5da1..0e4aa42f3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/reader.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/reader.go @@ -69,10 +69,23 @@ func (r *EventReader) ReadEvent() (event interface{}, err error) { case ErrorMessageType: return nil, r.unmarshalErrorMessage(msg) default: - return nil, fmt.Errorf("unknown eventstream message type, %v", typ) + return nil, &UnknownMessageTypeError{ + Type: typ, Message: msg.Clone(), + } } } +// UnknownMessageTypeError provides an error when a message is received from +// the stream, but the reader is unable to determine what kind of message it is. +type UnknownMessageTypeError struct { + Type string + Message eventstream.Message +} + +func (e *UnknownMessageTypeError) Error() string { + return "unknown eventstream message type, " + e.Type +} + func (r *EventReader) unmarshalEventMessage( msg eventstream.Message, ) (event interface{}, err error) { diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header.go index 3b44dde2f..f6f8c5674 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header.go @@ -52,6 +52,15 @@ func (hs *Headers) Del(name string) { } } +// Clone returns a deep copy of the headers +func (hs Headers) Clone() Headers { + o := make(Headers, 0, len(hs)) + for _, h := range hs { + o.Set(h.Name, h.Value) + } + return o +} + func decodeHeaders(r io.Reader) (Headers, error) { hs := Headers{} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/message.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/message.go index 25c9783cd..f7427da03 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/message.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/message.go @@ -57,6 +57,20 @@ func (m *Message) rawMessage() (rawMessage, error) { return raw, nil } +// Clone returns a deep copy of the message. +func (m Message) Clone() Message { + var payload []byte + if m.Payload != nil { + payload = make([]byte, len(m.Payload)) + copy(payload, m.Payload) + } + + return Message{ + Headers: m.Headers.Clone(), + Payload: payload, + } +} + type messagePrelude struct { Length uint32 HeadersLen uint32 diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go index 0cb99eb57..d40346a77 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go @@ -1,7 +1,7 @@ // Package query provides serialization of AWS query requests, and responses. package query -//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/input/query.json build_test.go +//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/query.json build_test.go import ( "net/url" diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go index f69c1efc9..9231e95d1 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go @@ -1,6 +1,6 @@ package query -//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/output/query.json unmarshal_test.go +//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/query.json unmarshal_test.go import ( "encoding/xml" diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go index 07a6187ea..b1ae36487 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go @@ -2,8 +2,8 @@ // requests and responses. package restxml -//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/input/rest-xml.json build_test.go -//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/output/rest-xml.json unmarshal_test.go +//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/rest-xml.json build_test.go +//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/rest-xml.json unmarshal_test.go import ( "bytes" diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go index 05d4ff519..d2f6dae53 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go @@ -56,7 +56,8 @@ func FormatTime(name string, t time.Time) string { case ISO8601TimeFormatName: return t.Format(ISO8601OutputTimeFormat) case UnixTimeFormatName: - return strconv.FormatInt(t.Unix(), 10) + ms := t.UnixNano() / int64(time.Millisecond) + return strconv.FormatFloat(float64(ms)/1e3, 'f', -1, 64) default: panic("unknown timestamp format name, " + name) } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go index cf981fe95..09ad95159 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go @@ -8,6 +8,7 @@ import ( "reflect" "sort" "strconv" + "strings" "time" "github.com/aws/aws-sdk-go/private/protocol" @@ -60,6 +61,14 @@ func (b *xmlBuilder) buildValue(value reflect.Value, current *XMLNode, tag refle return nil } + xml := tag.Get("xml") + if len(xml) != 0 { + name := strings.SplitAfterN(xml, ",", 2)[0] + if name == "-" { + return nil + } + } + t := tag.Get("type") if t == "" { switch value.Kind() { diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go index 7108d3800..107c053f8 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go @@ -64,6 +64,14 @@ func UnmarshalXML(v interface{}, d *xml.Decoder, wrapper string) error { // parse deserializes any value from the XMLNode. The type tag is used to infer the type, or reflect // will be used to determine the type from r. func parse(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { + xml := tag.Get("xml") + if len(xml) != 0 { + name := strings.SplitAfterN(xml, ",", 2)[0] + if name == "-" { + return nil + } + } + rtype := r.Type() if rtype.Kind() == reflect.Ptr { rtype = rtype.Elem() // check kind of actual element type diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index 52e87308f..8aadf3c56 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -14,6 +14,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/checksum" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/eventstream" "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" @@ -74,23 +75,23 @@ func (c *S3) AbortMultipartUploadRequest(input *AbortMultipartUploadInput) (req // times in order to completely free all storage consumed by all parts. // // To verify that all parts have been removed, so you don't get charged for -// the part storage, you should call the ListParts operation and ensure that -// the parts list is empty. +// the part storage, you should call the ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) +// operation and ensure that the parts list is empty. // // For information about permissions required to use the multipart upload API, // see Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). // // The following operations are related to AbortMultipartUpload: // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -172,14 +173,15 @@ func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) // Completes a multipart upload by assembling previously uploaded parts. // // You first initiate the multipart upload and then upload all parts using the -// UploadPart operation. After successfully uploading all relevant parts of -// an upload, you call this operation to complete the upload. Upon receiving -// this request, Amazon S3 concatenates all the parts in ascending order by -// part number to create a new object. In the Complete Multipart Upload request, -// you must provide the parts list. You must ensure that the parts list is complete. -// This operation concatenates the parts that you provide in the list. For each -// part in the list, you must provide the part number and the ETag value, returned -// after that part was uploaded. +// UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) +// operation. After successfully uploading all relevant parts of an upload, +// you call this operation to complete the upload. Upon receiving this request, +// Amazon S3 concatenates all the parts in ascending order by part number to +// create a new object. In the Complete Multipart Upload request, you must provide +// the parts list. You must ensure that the parts list is complete. This operation +// concatenates the parts that you provide in the list. For each part in the +// list, you must provide the part number and the ETag value, returned after +// that part was uploaded. // // Processing of a Complete Multipart Upload request could take several minutes // to complete. After Amazon S3 begins processing the request, it sends an HTTP @@ -199,7 +201,7 @@ func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) // For information about permissions required to use the multipart upload API, // see Multipart Upload API and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). // -// GetBucketLifecycle has the following special errors: +// CompleteMultipartUpload has the following special errors: // // * Error code: EntityTooSmall Description: Your proposed upload is smaller // than the minimum allowed object size. Each part must be at least 5 MB @@ -217,17 +219,17 @@ func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) // does not exist. The upload ID might be invalid, or the multipart upload // might have been aborted or completed. 404 Not Found // -// The following operations are related to DeleteBucketMetricsConfiguration: +// The following operations are related to CompleteMultipartUpload: // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -305,20 +307,9 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // // You can store individual objects of up to 5 TB in Amazon S3. You create a // copy of your object up to 5 GB in size in a single atomic operation using -// this API. However, for copying an object greater than 5 GB, you must use -// the multipart upload Upload Part - Copy API. For more information, see Copy -// Object Using the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). -// -// When copying an object, you can preserve all metadata (default) or specify -// new metadata. However, the ACL is not preserved and is set to private for -// the user making the request. To override the default ACL setting, specify -// a new ACL when generating a copy request. For more information, see Using -// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// -// Amazon S3 transfer acceleration does not support cross-region copies. If -// you request a cross-region copy using a transfer acceleration endpoint, you -// get a 400 Bad Request error. For more information about transfer acceleration, -// see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). +// this API. However, to copy an object greater than 5 GB, you must use the +// multipart upload Upload Part - Copy API. For more information, see Copy Object +// Using the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). // // All copy requests must be authenticated. Additionally, you must have read // access to the source object and write access to the destination bucket. For @@ -326,28 +317,6 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // Both the Region that you want to copy the object from and the Region that // you want to copy the object to must be enabled for your account. // -// To only copy an object under certain conditions, such as whether the Etag -// matches or whether the object was modified before or after a specified date, -// use the request parameters x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, -// x-amz-copy-source-if-unmodified-since, or x-amz-copy-source-if-modified-since. -// -// All headers with the x-amz- prefix, including x-amz-copy-source, must be -// signed. -// -// You can use this operation to change the storage class of an object that -// is already stored in Amazon S3 using the StorageClass parameter. For more -// information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). -// -// The source object that you are copying can be encrypted or unencrypted. If -// the source object is encrypted, it can be encrypted by server-side encryption -// using AWS managed encryption keys or by using a customer-provided encryption -// key. When copying an object, you can request that Amazon S3 encrypt the target -// object by using either the AWS managed encryption keys or by using your own -// encryption key. You can do this regardless of the form of server-side encryption -// that was used to encrypt the source, or even if the source object was not -// encrypted. For more information about server-side encryption, see Using Server-Side -// Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). -// // A copy request might return an error when Amazon S3 receives the copy request // or while Amazon S3 is copying the files. If the error occurs before the copy // operation starts, you receive a standard Amazon S3 error. If the error occurs @@ -363,131 +332,123 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // it were not, it would not contain the content-length, and you would need // to read the entire body. // -// Consider the following when using request headers: +// The copy request charge is based on the storage class and Region that you +// specify for the destination object. For pricing information, see Amazon S3 +// pricing (https://aws.amazon.com/s3/pricing/). // -// * Consideration 1 – If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since -// headers are present in the request and evaluate as follows, Amazon S3 -// returns 200 OK and copies the data: x-amz-copy-source-if-match condition -// evaluates to true x-amz-copy-source-if-unmodified-since condition evaluates -// to false +// Amazon S3 transfer acceleration does not support cross-Region copies. If +// you request a cross-Region copy using a transfer acceleration endpoint, you +// get a 400 Bad Request error. For more information, see Transfer Acceleration +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). // -// * Consideration 2 – If both of the x-amz-copy-source-if-none-match and -// x-amz-copy-source-if-modified-since headers are present in the request -// and evaluate as follows, Amazon S3 returns the 412 Precondition Failed -// response code: x-amz-copy-source-if-none-match condition evaluates to -// false x-amz-copy-source-if-modified-since condition evaluates to true +// Metadata // -// The copy request charge is based on the storage class and Region you specify -// for the destination object. For pricing information, see Amazon S3 Pricing -// (https://aws.amazon.com/s3/pricing/). +// When copying an object, you can preserve all metadata (default) or specify +// new metadata. However, the ACL is not preserved and is set to private for +// the user making the request. To override the default ACL setting, specify +// a new ACL when generating a copy request. For more information, see Using +// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). // -// Following are other considerations when using CopyObject: +// To specify whether you want the object metadata copied from the source object +// or replaced with metadata provided in the request, you can optionally add +// the x-amz-metadata-directive header. When you grant permissions, you can +// use the s3:x-amz-metadata-directive condition key to enforce certain metadata +// behavior when objects are uploaded. For more information, see Specifying +// Conditions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) +// in the Amazon S3 Developer Guide. For a complete list of Amazon S3-specific +// condition keys, see Actions, Resources, and Condition Keys for Amazon S3 +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html). // -// Versioning +// x-amz-copy-source-if Headers // -// By default, x-amz-copy-source identifies the current version of an object -// to copy. (If the current version is a delete marker, Amazon S3 behaves as -// if the object was deleted.) To copy a different version, use the versionId -// subresource. +// To only copy an object under certain conditions, such as whether the Etag +// matches or whether the object was modified before or after a specified date, +// use the following request parameters: // -// If you enable versioning on the target bucket, Amazon S3 generates a unique -// version ID for the object being copied. This version ID is different from -// the version ID of the source object. Amazon S3 returns the version ID of -// the copied object in the x-amz-version-id response header in the response. +// * x-amz-copy-source-if-match // -// If you do not enable versioning or suspend it on the target bucket, the version -// ID that Amazon S3 generates is always null. +// * x-amz-copy-source-if-none-match // -// If the source object's storage class is GLACIER, you must restore a copy -// of this object before you can use it as a source object for the copy operation. -// For more information, see . +// * x-amz-copy-source-if-unmodified-since // -// Access Permissions +// * x-amz-copy-source-if-modified-since // -// When copying an object, you can optionally specify the accounts or groups -// that should be granted specific permissions on the new object. There are -// two ways to grant the permissions using the request headers: +// If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since +// headers are present in the request and evaluate as follows, Amazon S3 returns +// 200 OK and copies the data: // -// * Specify a canned ACL with the x-amz-acl request header. For more information, -// see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). +// * x-amz-copy-source-if-match condition evaluates to true // -// * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, -// x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters -// map to the set of permissions that Amazon S3 supports in an ACL. For more -// information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). +// * x-amz-copy-source-if-unmodified-since condition evaluates to false // -// You can use either a canned ACL or specify access permissions explicitly. -// You cannot do both. +// If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since +// headers are present in the request and evaluate as follows, Amazon S3 returns +// the 412 Precondition Failed response code: // -// Server-Side- Encryption-Specific Request Headers +// * x-amz-copy-source-if-none-match condition evaluates to false // -// To encrypt the target object, you must provide the appropriate encryption-related -// request headers. The one you use depends on whether you want to use AWS managed -// encryption keys or provide your own encryption key. +// * x-amz-copy-source-if-modified-since condition evaluates to true // -// * To encrypt the target object using server-side encryption with an AWS -// managed encryption key, provide the following request headers, as appropriate. -// x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id -// x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, -// but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon -// S3 uses the AWS managed CMK in AWS KMS to protect the data. If you want -// to use a customer managed AWS KMS CMK, you must provide the x-amz-server-side-encryption-aws-kms-key-id -// of the symmetric customer managed CMK. Amazon S3 only supports symmetric -// CMKs and not asymmetric CMKs. For more information, see Using Symmetric -// and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. All GET and PUT requests -// for an object protected by AWS KMS fail if you don't make them with SSL -// or by using SigV4. For more information about server-side encryption with -// CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with CMKs stored in KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). -// -// * To encrypt the target object using server-side encryption with an encryption -// key that you provide, use the following headers. x-amz-server-side​-encryption​-customer-algorithm -// x-amz-server-side​-encryption​-customer-key x-amz-server-side​-encryption​-customer-key-MD5 -// -// * If the source object is encrypted using server-side encryption with -// customer-provided encryption keys, you must use the following headers. -// x-amz-copy-source​-server-side​-encryption​-customer-algorithm x-amz-copy-source​-server-side​-encryption​-customer-key -// x-amz-copy-source-​server-side​-encryption​-customer-key-MD5 For -// more information about server-side encryption with CMKs stored in AWS -// KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs -// stored in Amazon KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// All headers with the x-amz- prefix, including x-amz-copy-source, must be +// signed. // -// Access-Control-List (ACL)-Specific Request Headers +// Encryption // -// You also can use the following access control–related headers with this -// operation. By default, all objects are private. Only the owner has full access -// control. When adding a new object, you can grant permissions to individual +// The source object that you are copying can be encrypted or unencrypted. The +// source object can be encrypted with server-side encryption using AWS managed +// encryption keys (SSE-S3 or SSE-KMS) or by using a customer-provided encryption +// key. With server-side encryption, Amazon S3 encrypts your data as it writes +// it to disks in its data centers and decrypts the data when you access it. +// +// You can optionally use the appropriate encryption-related headers to request +// server-side encryption for the target object. You have the option to provide +// your own encryption key or use SSE-S3 or SSE-KMS, regardless of the form +// of server-side encryption that was used to encrypt the source object. You +// can even request encryption if the source object was not encrypted. For more +// information about server-side encryption, see Using Server-Side Encryption +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). +// +// Access Control List (ACL)-Specific Request Headers +// +// When copying an object, you can optionally use headers to grant ACL-based +// permissions. By default, all objects are private. Only the owner has full +// access control. When adding a new object, you can grant permissions to individual // AWS accounts or to predefined groups defined by Amazon S3. These permissions -// are then added to the access control list (ACL) on the object. For more information, -// see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// With this operation, you can grant access permissions using one of the following -// two methods: +// are then added to the ACL on the object. For more information, see Access +// Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) +// and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). // -// * Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined -// ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees -// and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). +// Storage Class Options // -// * Specify access permissions explicitly — To explicitly grant access -// permissions to specific AWS accounts or groups, use the following headers. -// Each header maps to specific permissions that Amazon S3 supports in an -// ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). -// In the header, you specify a list of grantees who get the specific permission. -// To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write -// x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You -// specify each grantee as a type=value pair, where the type is one of the -// following: emailAddress – if the value specified is the email address -// of an AWS account id – if the value specified is the canonical user -// ID of an AWS account uri – if you are granting permissions to a predefined -// group For example, the following x-amz-grant-read header grants the AWS -// accounts identified by email addresses permissions to read object data -// and its metadata: x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// You can use the CopyObject operation to change the storage class of an object +// that is already stored in Amazon S3 using the StorageClass parameter. For +// more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) +// in the Amazon S3 Service Developer Guide. +// +// Versioning +// +// By default, x-amz-copy-source identifies the current version of an object +// to copy. If the current version is a delete marker, Amazon S3 behaves as +// if the object was deleted. To copy a different version, use the versionId +// subresource. +// +// If you enable versioning on the target bucket, Amazon S3 generates a unique +// version ID for the object being copied. This version ID is different from +// the version ID of the source object. Amazon S3 returns the version ID of +// the copied object in the x-amz-version-id response header in the response. +// +// If you do not enable versioning or suspend it on the target bucket, the version +// ID that Amazon S3 generates is always null. +// +// If the source object's storage class is GLACIER, you must restore a copy +// of this object before you can use it as a source object for the copy operation. +// For more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). // // The following operations are related to CopyObject: // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // // For more information, see Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html). // @@ -581,8 +542,8 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // can optionally specify a Region in the request body. You might choose a Region // to optimize latency, minimize costs, or address regulatory requirements. // For example, if you reside in Europe, you will probably find it advantageous -// to create buckets in the EU (Ireland) Region. For more information, see How -// to Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). +// to create buckets in the Europe (Ireland) Region. For more information, see +// How to Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). // // If you send your create bucket request to the s3.amazonaws.com endpoint, // the request goes to the us-east-1 Region. Accordingly, the signature calculations @@ -608,21 +569,28 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // in an ACL. For more information, see Access Control List (ACL) Overview // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). You // specify each grantee as a type=value pair, where the type is one of the -// following: emailAddress – if the value specified is the email address -// of an AWS account id – if the value specified is the canonical user -// ID of an AWS account uri – if you are granting permissions to a predefined -// group For example, the following x-amz-grant-read header grants the AWS -// accounts identified by email addresses permissions to read object data -// and its metadata: x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// following: id – if the value specified is the canonical user ID of an +// AWS account uri – if you are granting permissions to a predefined group +// emailAddress – if the value specified is the email address of an AWS +// account Using email addresses to specify a grantee is only supported in +// the following AWS Regions: US East (N. Virginia) US West (N. California) +// US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific +// (Tokyo) Europe (Ireland) South America (São Paulo) For a list of all +// the Amazon S3 supported Regions and endpoints, see Regions and Endpoints +// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in +// the AWS General Reference. For example, the following x-amz-grant-read +// header grants the AWS accounts identified by account IDs permissions to +// read object data and its metadata: x-amz-grant-read: id="11112222333", +// id="444455556666" // // You can use either a canned ACL or specify access permissions explicitly. // You cannot do both. // // The following operations are related to CreateBucket: // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * DeleteBucket +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -712,8 +680,9 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // This operation initiates a multipart upload and returns an upload ID. This // upload ID is used to associate all of the parts in the specific multipart // upload. You specify this upload ID in each of your subsequent upload part -// requests (see UploadPart). You also include this upload ID in the final request -// to either complete or abort the multipart upload request. +// requests (see UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). +// You also include this upload ID in the final request to either complete or +// abort the multipart upload request. // // For more information about multipart uploads, see Multipart Upload Overview // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html). @@ -746,9 +715,10 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // and decrypts it when you access it. You can provide your own encryption key, // or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or // Amazon S3-managed encryption keys. If you choose to provide your own encryption -// key, the request headers you provide in UploadPart) and UploadPartCopy) requests -// must match the headers you used in the request to initiate the upload by -// using CreateMultipartUpload. +// key, the request headers you provide in UploadPart (AmazonS3/latest/API/API_UploadPart.html) +// and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) +// requests must match the headers you used in the request to initiate the upload +// by using CreateMultipartUpload. // // To perform a multipart upload with encryption using an AWS KMS CMK, the requester // must have permission to the kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, @@ -792,7 +762,7 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) // stored in AWS Key Management Service (AWS KMS) – If you want AWS to // manage the keys used to encrypt data, specify the following headers in -// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id +// the request. x-amz-server-side-encryption x-amz-server-side-encryption-aws-kms-key-id // x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, // but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon // S3 uses the AWS managed CMK in AWS KMS to protect the data. All GET and @@ -803,11 +773,10 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // // * Use customer-provided encryption keys – If you want to manage your // own encryption keys, provide all the following headers in the request. -// x-amz-server-side​-encryption​-customer-algorithm x-amz-server-side​-encryption​-customer-key -// x-amz-server-side​-encryption​-customer-key-MD5 For more information -// about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see -// Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// x-amz-server-side-encryption-customer-algorithm x-amz-server-side-encryption-customer-key +// x-amz-server-side-encryption-customer-key-MD5 For more information about +// server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting +// Data Using Server-Side Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). // // Access-Control-List (ACL)-Specific Request Headers // @@ -832,24 +801,31 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write // x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You // specify each grantee as a type=value pair, where the type is one of the -// following: emailAddress – if the value specified is the email address -// of an AWS account id – if the value specified is the canonical user -// ID of an AWS account uri – if you are granting permissions to a predefined -// group For example, the following x-amz-grant-read header grants the AWS -// accounts identified by email addresses permissions to read object data -// and its metadata: x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// following: id – if the value specified is the canonical user ID of an +// AWS account uri – if you are granting permissions to a predefined group +// emailAddress – if the value specified is the email address of an AWS +// account Using email addresses to specify a grantee is only supported in +// the following AWS Regions: US East (N. Virginia) US West (N. California) +// US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific +// (Tokyo) Europe (Ireland) South America (São Paulo) For a list of all +// the Amazon S3 supported Regions and endpoints, see Regions and Endpoints +// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in +// the AWS General Reference. For example, the following x-amz-grant-read +// header grants the AWS accounts identified by account IDs permissions to +// read object data and its metadata: x-amz-grant-read: id="11112222333", +// id="444455556666" // // The following operations are related to CreateMultipartUpload: // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -929,9 +905,9 @@ func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request // // Related Resources // -// * +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1012,7 +988,7 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt // To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration // action. The bucket owner has this permission by default. The bucket owner // can grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). // // For information about the Amazon S3 analytics feature, see Amazon S3 Analytics @@ -1020,11 +996,11 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt // // The following operations are related to DeleteBucketAnalyticsConfiguration: // -// * +// * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) // -// * +// * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) // -// * +// * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1110,9 +1086,9 @@ func (c *S3) DeleteBucketCorsRequest(input *DeleteBucketCorsInput) (req *request // // Related Resources: // -// * +// * PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) // -// * RESTOPTIONSobject +// * RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1189,21 +1165,21 @@ func (c *S3) DeleteBucketEncryptionRequest(input *DeleteBucketEncryptionInput) ( // // This implementation of the DELETE operation removes default encryption from // the bucket. For information about the Amazon S3 default encryption feature, -// see Amazon S3 Default Bucket Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev//bucket-encryption.html) +// see Amazon S3 Default Bucket Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) // in the Amazon Simple Storage Service Developer Guide. // // To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration // action. The bucket owner has this permission by default. The bucket owner // can grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html) +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // in the Amazon Simple Storage Service Developer Guide. // // Related Resources // -// * PutBucketEncryption +// * PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) // -// * GetBucketEncryption +// * GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1292,11 +1268,11 @@ func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInvent // // Operations related to DeleteBucketInventoryConfiguration include: // -// * GetBucketInventoryConfiguration +// * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) // -// * PutBucketInventoryConfiguration +// * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) // -// * ListBucketInventoryConfigurations +// * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1389,9 +1365,9 @@ func (c *S3) DeleteBucketLifecycleRequest(input *DeleteBucketLifecycleInput) (re // // Related actions include: // -// * PutBucketLifecycleConfiguration +// * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) // -// * GetBucketLifecycleConfiguration +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1481,11 +1457,11 @@ func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsC // // The following operations are related to DeleteBucketMetricsConfiguration: // -// * GetBucketMetricsConfiguration +// * GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) // -// * PutBucketMetricsConfiguration +// * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) // -// * ListBucketMetricsConfigurations +// * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) // // * Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) // @@ -1582,9 +1558,9 @@ func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *req // // The following operations are related to DeleteBucketPolicy // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * DeleteObject +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1675,9 +1651,9 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput) // // The following operations are related to DeleteBucketReplication: // -// * PutBucketReplication +// * PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) // -// * GetBucketReplication +// * GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1760,9 +1736,9 @@ func (c *S3) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *r // // The following operations are related to DeleteBucketTagging: // -// * GetBucketTagging +// * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) // -// * PutBucketTagging +// * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1854,9 +1830,9 @@ func (c *S3) DeleteBucketWebsiteRequest(input *DeleteBucketWebsiteInput) (req *r // // The following operations are related to DeleteBucketWebsite: // -// * GetBucketWebsite +// * GetBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) // -// * PutBucketWebsite +// * PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1948,14 +1924,15 @@ func (c *S3) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request // To see sample requests that use versioning, see Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). // // You can delete objects by explicitly calling the DELETE Object API or configure -// its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for -// you. If you want to block users or accounts from removing or deleting objects -// from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, -// and s3:PutLifeCycleConfiguration actions. +// its lifecycle (PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) +// to enable Amazon S3 to remove them for you. If you want to block users or +// accounts from removing or deleting objects from your bucket, you must deny +// them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration +// actions. // // The following operation is related to DeleteObject: // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2041,9 +2018,9 @@ func (c *S3) DeleteObjectTaggingRequest(input *DeleteObjectTaggingInput) (req *r // // The following operations are related to DeleteBucketMetricsConfiguration: // -// * PutObjectTagging +// * PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) // -// * GetObjectTagging +// * GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2112,6 +2089,10 @@ func (c *S3) DeleteObjectsRequest(input *DeleteObjectsInput) (req *request.Reque output = &DeleteObjectsOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -2150,15 +2131,15 @@ func (c *S3) DeleteObjectsRequest(input *DeleteObjectsInput) (req *request.Reque // // The following operations are related to DeleteObjects: // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2239,15 +2220,15 @@ func (c *S3) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). // -// The following operations are related to DeleteBucketMetricsConfiguration: +// The following operations are related to DeletePublicAccessBlock: // // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) // -// * GetPublicAccessBlock +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) // -// * PutPublicAccessBlock +// * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) // -// * GetBucketPolicyStatus +// * GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2329,24 +2310,25 @@ func (c *S3) GetBucketAccelerateConfigurationRequest(input *GetBucketAccelerateC // To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration // action. The bucket owner has this permission by default. The bucket owner // can grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html) +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // in the Amazon Simple Storage Service Developer Guide. // // You set the Transfer Acceleration state of an existing bucket to Enabled -// or Suspended by using the PutBucketAccelerateConfiguration operation. +// or Suspended by using the PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) +// operation. // // A GET accelerate request does not return a state value for a bucket that // has no transfer acceleration state. A bucket has no Transfer Acceleration // state if a state has never been set on the bucket. // // For more information about transfer acceleration, see Transfer Acceleration -// (https://docs.aws.amazon.com/AmazonS3/latest/dev//transfer-acceleration.html) +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) // in the Amazon Simple Storage Service Developer Guide. // // Related Resources // -// * PutBucketAccelerateConfiguration +// * PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2428,7 +2410,7 @@ func (c *S3) GetBucketAclRequest(input *GetBucketAclInput) (req *request.Request // // Related Resources // -// * +// * ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2518,11 +2500,11 @@ func (c *S3) GetBucketAnalyticsConfigurationRequest(input *GetBucketAnalyticsCon // // Related Resources // -// * +// * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) // -// * +// * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) // -// * +// * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2607,9 +2589,9 @@ func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Reque // // The following operations are related to GetBucketCors: // -// * PutBucketCors +// * PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) // -// * DeleteBucketCors +// * DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2695,9 +2677,9 @@ func (c *S3) GetBucketEncryptionRequest(input *GetBucketEncryptionInput) (req *r // // The following operations are related to GetBucketEncryption: // -// * PutBucketEncryption +// * PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) // -// * DeleteBucketEncryption +// * DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2785,11 +2767,11 @@ func (c *S3) GetBucketInventoryConfigurationRequest(input *GetBucketInventoryCon // // The following operations are related to GetBucketInventoryConfiguration: // -// * DeleteBucketInventoryConfiguration +// * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) // -// * ListBucketInventoryConfigurations +// * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) // -// * PutBucketInventoryConfiguration +// * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2869,7 +2851,7 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req // GetBucketLifecycle API operation for Amazon Simple Storage Service. // // -// For an updated version of this API, see GetBucketLifecycleConfiguration. +// For an updated version of this API, see GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html). // If you configured a bucket lifecycle using the filter element, you should // see the updated version of this topic. This topic is provided for backward // compatibility. @@ -2891,11 +2873,11 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req // // The following operations are related to GetBucketLifecycle: // -// * GetBucketLifecycleConfiguration +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) // -// * PutBucketLifecycle +// * PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) // -// * DeleteBucketLifecycle +// * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2980,7 +2962,7 @@ func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleCon // the new filter element that you can use to specify a filter to select a subset // of objects to which the rule applies. If you are still using previous version // of the lifecycle configuration, it works. For the earlier API description, -// see GetBucketLifecycle. +// see GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). // // Returns the lifecycle configuration information set on the bucket. For information // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). @@ -2997,13 +2979,13 @@ func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleCon // configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault // Code Prefix: Client // -// The following operations are related to DeleteBucketMetricsConfiguration: +// The following operations are related to GetBucketLifecycleConfiguration: // -// * GetBucketLifecycle +// * GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) // -// * PutBucketLifecycle +// * PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) // -// * DeleteBucketLifecycle +// * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3079,15 +3061,15 @@ func (c *S3) GetBucketLocationRequest(input *GetBucketLocationInput) (req *reque // // Returns the Region the bucket resides in. You set the bucket's Region using // the LocationConstraint request parameter in a CreateBucket request. For more -// information, see CreateBucket. +// information, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). // // To use this implementation of the operation, you must be the bucket owner. // // The following operations are related to GetBucketLocation: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3166,9 +3148,9 @@ func (c *S3) GetBucketLoggingRequest(input *GetBucketLoggingInput) (req *request // // The following operations are related to GetBucketLogging: // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * PutBucketLogging +// * PutBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3256,11 +3238,11 @@ func (c *S3) GetBucketMetricsConfigurationRequest(input *GetBucketMetricsConfigu // // The following operations are related to GetBucketMetricsConfiguration: // -// * PutBucketMetricsConfiguration +// * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) // -// * DeleteBucketMetricsConfiguration +// * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) // -// * ListBucketMetricsConfigurations +// * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) // // * Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) // @@ -3341,7 +3323,7 @@ func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurat // GetBucketNotification API operation for Amazon Simple Storage Service. // -// No longer used, see GetBucketNotificationConfiguration. +// No longer used, see GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3435,7 +3417,7 @@ func (c *S3) GetBucketNotificationConfigurationRequest(input *GetBucketNotificat // // The following operation is related to GetBucketNotification: // -// * PutBucketNotification +// * PutBucketNotification (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3528,7 +3510,7 @@ func (c *S3) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.R // // The following operation is related to GetBucketPolicy: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3614,11 +3596,11 @@ func (c *S3) GetBucketPolicyStatusRequest(input *GetBucketPolicyStatusInput) (re // // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) // -// * GetPublicAccessBlock +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) // -// * PutPublicAccessBlock +// * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) // -// * DeletePublicAccessBlock +// * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3709,13 +3691,14 @@ func (c *S3) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req // also include the DeleteMarkerReplication and Priority elements. The response // also returns those elements. // -// For information about GetBucketReplication errors, see ReplicationErrorCodeList +// For information about GetBucketReplication errors, see List of replication-related +// error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) // // The following operations are related to GetBucketReplication: // -// * PutBucketReplication +// * PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) // -// * DeleteBucketReplication +// * DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3795,7 +3778,7 @@ func (c *S3) GetBucketRequestPaymentRequest(input *GetBucketRequestPaymentInput) // // The following operations are related to GetBucketRequestPayment: // -// * ListObjects +// * ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3882,9 +3865,9 @@ func (c *S3) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request // // The following operations are related to GetBucketTagging: // -// * PutBucketTagging +// * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) // -// * DeleteBucketTagging +// * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3968,11 +3951,11 @@ func (c *S3) GetBucketVersioningRequest(input *GetBucketVersioningInput) (req *r // // The following operations are related to GetBucketVersioning: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * DeleteObject +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4058,9 +4041,9 @@ func (c *S3) GetBucketWebsiteRequest(input *GetBucketWebsiteInput) (req *request // // The following operations are related to DeleteBucketWebsite: // -// * DeleteBucketWebsite +// * DeleteBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) // -// * PutBucketWebsite +// * PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4154,13 +4137,14 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // // To distribute large files to many people, you can save bandwidth costs by // using BitTorrent. For more information, see Amazon S3 Torrent (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). -// For more information about returning the ACL of an object, see GetObjectAcl. +// For more information about returning the ACL of an object, see GetObjectAcl +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). // // If the object you are retrieving is stored in the GLACIER or DEEP_ARCHIVE // storage classes, before you can retrieve the object you must first restore -// a copy using . Otherwise, this operation returns an InvalidObjectStateError -// error. For information about restoring archived objects, see Restoring Archived -// Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html). +// a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). +// Otherwise, this operation returns an InvalidObjectStateError error. For information +// about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html). // // Encryption request headers, like x-amz-server-side-encryption, should not // be sent for GET requests if your object uses server-side encryption with @@ -4172,11 +4156,11 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // encryption keys (SSE-C) when you store the object in Amazon S3, then when // you GET the object, you must use the following headers: // -// * x-amz-server-side​-encryption​-customer-algorithm +// * x-amz-server-side-encryption-customer-algorithm // -// * x-amz-server-side​-encryption​-customer-key +// * x-amz-server-side-encryption-customer-key // -// * x-amz-server-side​-encryption​-customer-key-MD5 +// * x-amz-server-side-encryption-customer-key-MD5 // // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). @@ -4184,6 +4168,7 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // Assuming you have permission to read object tags (permission for the s3:GetObjectVersionTagging // action), the response also returns the x-amz-tagging-count header that provides // the count of number of tags associated with the object. You can use GetObjectTagging +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) // to retrieve the tag set associated with an object. // // Permissions @@ -4208,7 +4193,7 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // as if the object was deleted and includes x-amz-delete-marker: true in the // response. // -// For more information about versioning, see PutBucketVersioning. +// For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html). // // Overriding Response Header Values // @@ -4255,9 +4240,9 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // // The following operations are related to GetObject: // -// * ListBuckets +// * ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) // -// * GetObjectAcl +// * GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4346,11 +4331,11 @@ func (c *S3) GetObjectAclRequest(input *GetObjectAclInput) (req *request.Request // // The following operations are related to GetObjectAcl: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * DeleteObject +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4674,7 +4659,7 @@ func (c *S3) GetObjectTaggingRequest(input *GetObjectTaggingInput) (req *request // // The following operation is related to GetObjectTagging: // -// * PutObjectTagging +// * PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4760,7 +4745,7 @@ func (c *S3) GetObjectTorrentRequest(input *GetObjectTorrentInput) (req *request // // The following operation is related to GetObjectTorrent: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4853,11 +4838,11 @@ func (c *S3) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req // // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) // -// * PutPublicAccessBlock +// * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) // -// * GetPublicAccessBlock +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) // -// * DeletePublicAccessBlock +// * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5032,11 +5017,11 @@ func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, ou // encryption keys (SSE-C) when you store the object in Amazon S3, then when // you retrieve the metadata from the object, you must use the following headers: // -// * x-amz-server-side​-encryption​-customer-algorithm +// * x-amz-server-side-encryption-customer-algorithm // -// * x-amz-server-side​-encryption​-customer-key +// * x-amz-server-side-encryption-customer-key // -// * x-amz-server-side​-encryption​-customer-key-MD5 +// * x-amz-server-side-encryption-customer-key-MD5 // // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). @@ -5079,7 +5064,7 @@ func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, ou // // The following operation is related to HeadObject: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // // See http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#RESTErrorResponses // for more information on returned errors. @@ -5178,11 +5163,11 @@ func (c *S3) ListBucketAnalyticsConfigurationsRequest(input *ListBucketAnalytics // // The following operations are related to ListBucketAnalyticsConfigurations: // -// * GetBucketAnalyticsConfiguration +// * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) // -// * DeleteBucketAnalyticsConfiguration +// * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) // -// * PutBucketAnalyticsConfiguration +// * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5278,11 +5263,11 @@ func (c *S3) ListBucketInventoryConfigurationsRequest(input *ListBucketInventory // // The following operations are related to ListBucketInventoryConfigurations: // -// * GetBucketInventoryConfiguration +// * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) // -// * DeleteBucketInventoryConfiguration +// * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) // -// * PutBucketInventoryConfiguration +// * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5379,11 +5364,11 @@ func (c *S3) ListBucketMetricsConfigurationsRequest(input *ListBucketMetricsConf // // The following operations are related to ListBucketMetricsConfigurations: // -// * PutBucketMetricsConfiguration +// * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) // -// * GetBucketMetricsConfiguration +// * GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) // -// * DeleteBucketMetricsConfiguration +// * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5562,15 +5547,15 @@ func (c *S3) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req // // The following operations are related to ListMultipartUploads: // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5713,13 +5698,13 @@ func (c *S3) ListObjectVersionsRequest(input *ListObjectVersionsInput) (req *req // // The following operations are related to ListObjectVersions: // -// * ListObjectsV2 +// * ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * DeleteObject +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5857,21 +5842,22 @@ func (c *S3) ListObjectsRequest(input *ListObjectsInput) (req *request.Request, // to design your application to parse the contents of the response and handle // it appropriately. // -// This API has been revised. We recommend that you use the newer version, ListObjectsV2, +// This API has been revised. We recommend that you use the newer version, ListObjectsV2 +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), // when developing applications. For backward compatibility, Amazon S3 continues // to support ListObjects. // // The following operations are related to ListObjects: // -// * ListObjectsV2 +// * ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * ListBuckets +// * ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6025,17 +6011,18 @@ func (c *S3) ListObjectsV2Request(input *ListObjectsV2Input) (req *request.Reque // // This section describes the latest revision of the API. We recommend that // you use this revised API for application development. For backward compatibility, -// Amazon S3 continues to support the prior version of this API, ListObjects. +// Amazon S3 continues to support the prior version of this API, ListObjects +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html). // -// To get a list of your buckets, see ListBuckets. +// To get a list of your buckets, see ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). // // The following operations are related to ListObjectsV2: // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6174,14 +6161,14 @@ func (c *S3) ListPartsRequest(input *ListPartsInput) (req *request.Request, outp // // Lists the parts that have been uploaded for a specific multipart upload. // This operation must include the upload ID, which you obtain by sending the -// initiate multipart upload request (see CreateMultipartUpload). This request -// returns a maximum of 1,000 uploaded parts. The default number of parts returned -// is 1,000 parts. You can restrict the number of parts returned by specifying -// the max-parts request parameter. If your multipart upload consists of more -// than 1,000 parts, the response returns an IsTruncated field with the value -// of true, and a NextPartNumberMarker element. In subsequent ListParts requests -// you can include the part-number-marker query string parameter and set its -// value to the NextPartNumberMarker field value from the previous response. +// initiate multipart upload request (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)). +// This request returns a maximum of 1,000 uploaded parts. The default number +// of parts returned is 1,000 parts. You can restrict the number of parts returned +// by specifying the max-parts request parameter. If your multipart upload consists +// of more than 1,000 parts, the response returns an IsTruncated field with +// the value of true, and a NextPartNumberMarker element. In subsequent ListParts +// requests you can include the part-number-marker query string parameter and +// set its value to the NextPartNumberMarker field value from the previous response. // // For more information on multipart uploads, see Uploading Objects Using Multipart // Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). @@ -6191,15 +6178,15 @@ func (c *S3) ListPartsRequest(input *ListPartsInput) (req *request.Request, outp // // The following operations are related to ListParts: // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6343,8 +6330,8 @@ func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateC // // * Suspended – Disables accelerated data transfers to the bucket. // -// The GetBucketAccelerateConfiguration operation returns the transfer acceleration -// state of a bucket. +// The GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) +// operation returns the transfer acceleration state of a bucket. // // After setting the Transfer Acceleration state of a bucket to Enabled, it // might take up to thirty minutes before the data transfer rates to the bucket @@ -6358,9 +6345,9 @@ func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateC // // The following operations are related to PutBucketAccelerateConfiguration: // -// * GetBucketAccelerateConfiguration +// * GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6430,6 +6417,10 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request output = &PutBucketAclOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -6473,14 +6464,20 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request // Amazon S3 supports in an ACL. For more information, see Access Control // List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // You specify each grantee as a type=value pair, where the type is one of -// the following: emailAddress – if the value specified is the email address -// of an AWS account id – if the value specified is the canonical user -// ID of an AWS account uri – if you are granting permissions to a predefined -// group For example, the following x-amz-grant-write header grants create, -// overwrite, and delete objects permission to LogDelivery group predefined -// by Amazon S3 and two AWS accounts identified by their email addresses. -// x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", -// emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// the following: id – if the value specified is the canonical user ID +// of an AWS account uri – if you are granting permissions to a predefined +// group emailAddress – if the value specified is the email address of +// an AWS account Using email addresses to specify a grantee is only supported +// in the following AWS Regions: US East (N. Virginia) US West (N. California) +// US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific +// (Tokyo) Europe (Ireland) South America (São Paulo) For a list of all +// the Amazon S3 supported Regions and endpoints, see Regions and Endpoints +// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in +// the AWS General Reference. For example, the following x-amz-grant-write +// header grants create, overwrite, and delete objects permission to LogDelivery +// group predefined by Amazon S3 and two AWS accounts identified by their +// email addresses. x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", +// id="111122223333", id="555566667777" // // You can use either a canned ACL or specify access permissions explicitly. // You cannot do both. @@ -6490,11 +6487,6 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request // You can specify the person (grantee) to whom you're assigning access rights // (using request elements) in the following ways: // -// * By Email address: <>Grantees@email.com<>lt;/Grantee> -// The grantee is resolved to the CanonicalUser and, in a response to a GET -// Object acl request, appears as the CanonicalUser. -// // * By the person's ID: <>ID<><>GranteesEmail<> // DisplayName is optional and ignored in the request @@ -6502,13 +6494,24 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request // * By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> // +// * By Email address: <>Grantees@email.com<>lt;/Grantee> +// The grantee is resolved to the CanonicalUser and, in a response to a GET +// Object acl request, appears as the CanonicalUser. Using email addresses +// to specify a grantee is only supported in the following AWS Regions: US +// East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific +// (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) +// South America (São Paulo) For a list of all the Amazon S3 supported Regions +// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) +// in the AWS General Reference. +// // Related Resources // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * DeleteBucket +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) // -// * GetObjectAcl +// * GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6623,11 +6626,11 @@ func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsCon // // Related Resources // -// * +// * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) // -// * +// * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) // -// * +// * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6697,6 +6700,10 @@ func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Reque output = &PutBucketCorsOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -6740,11 +6747,11 @@ func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Reque // // Related Resources // -// * GetBucketCors +// * GetBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) // -// * DeleteBucketCors +// * DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) // -// * RESTOPTIONSobject +// * RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6814,6 +6821,10 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r output = &PutBucketEncryptionOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -6824,7 +6835,8 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r // // This implementation of the PUT operation sets default encryption for a bucket // using server-side encryption with Amazon S3-managed keys SSE-S3 or AWS KMS -// customer master keys (CMKs) (SSE-KMS). +// customer master keys (CMKs) (SSE-KMS). For information about the Amazon S3 +// default encryption feature, see Amazon S3 Default Bucket Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). // // This operation requires AWS Signature Version 4. For more information, see // Authenticating Requests (AWS Signature Version 4) (sig-v4-authenticating-requests.html). @@ -6838,9 +6850,9 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r // // Related Resources // -// * GetBucketEncryption +// * GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) // -// * DeleteBucketEncryption +// * DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6929,19 +6941,19 @@ func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryCon // bucket where you want the inventory to be stored, and whether to generate // the inventory daily or weekly. You can also configure what object metadata // to include and whether to inventory all object versions or only current versions. -// For more information, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev//storage-inventory.html) +// For more information, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) // in the Amazon Simple Storage Service Developer Guide. // // You must create a bucket policy on the destination bucket to grant permissions // to Amazon S3 to write objects to the bucket in the defined location. For // an example policy, see Granting Permissions for Amazon S3 Inventory and Storage -// Class Analysis. (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9) +// Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). // // To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration // action. The bucket owner has this permission by default and can grant this // permission to others. For more information about permissions, see Permissions -// Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html) +// Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // in the Amazon Simple Storage Service Developer Guide. // // Special Errors @@ -6954,15 +6966,15 @@ func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryCon // // * HTTP 403 Forbidden Error Code: AccessDenied Cause: You are not the owner // of the specified bucket, or you do not have the s3:PutInventoryConfiguration -// bucket permission to set the configuration on the bucket +// bucket permission to set the configuration on the bucket. // // Related Resources // -// * GetBucketInventoryConfiguration +// * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) // -// * DeleteBucketInventoryConfiguration +// * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) // -// * ListBucketInventoryConfigurations +// * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7037,19 +7049,23 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req output = &PutBucketLifecycleOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } // PutBucketLifecycle API operation for Amazon Simple Storage Service. // // -// For an updated version of this API, see PutBucketLifecycleConfiguration. +// For an updated version of this API, see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html). // This version has been deprecated. Existing lifecycle configurations will // work. For new lifecycle configurations, use the updated API. // // Creates a new lifecycle configuration for the bucket or replaces an existing // lifecycle configuration. For information about lifecycle configuration, see -// Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev//object-lifecycle-mgmt.html) +// Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) // in the Amazon Simple Storage Service Developer Guide. // // By default, all Amazon S3 resources, including buckets, objects, and related @@ -7071,26 +7087,26 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req // * s3:PutLifecycleConfiguration // // For more information about permissions, see Managing Access Permissions to -// your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html) +// your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // in the Amazon Simple Storage Service Developer Guide. // // For more examples of transitioning objects to storage classes such as STANDARD_IA -// or ONEZONE_IA, see Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev//intro-lifecycle-rules.html#lifecycle-configuration-examples). +// or ONEZONE_IA, see Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#lifecycle-configuration-examples). // // Related Resources // -// * GetBucketLifecycle(Deprecated) +// * GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)(Deprecated) // -// * GetBucketLifecycleConfiguration +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) // -// * +// * RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) // // * By default, a resource owner—in this case, a bucket owner, which is // the AWS account that created the bucket—can perform any of the operations. // A resource owner can also grant others permission to perform the operation. // For more information, see the following topics in the Amazon Simple Storage -// Service Developer Guide: Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html) -// Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html) +// Service Developer Guide: Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) +// Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7164,6 +7180,10 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon output = &PutBucketLifecycleConfigurationOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -7178,7 +7198,7 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon // Accordingly, this section describes the latest API. The previous version // of the API supported filtering based only on an object key name prefix, which // is supported for backward compatibility. For the related API description, -// see PutBucketLifecycle. +// see PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). // // Rules // @@ -7229,9 +7249,9 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon // // * Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html) // -// * GetBucketLifecycleConfiguration +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) // -// * DeleteBucketLifecycle +// * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7301,6 +7321,10 @@ func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request output = &PutBucketLoggingOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -7340,18 +7364,19 @@ func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request // For more information about server access logging, see Server Access Logging // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html). // -// For more information about creating a bucket, see CreateBucket. For more -// information about returning the logging status of a bucket, see GetBucketLogging. +// For more information about creating a bucket, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). +// For more information about returning the logging status of a bucket, see +// GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html). // // The following operations are related to PutBucketLogging: // -// * PutObject +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) // -// * DeleteBucket +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * GetBucketLogging +// * GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7443,11 +7468,11 @@ func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigu // // The following operations are related to PutBucketMetricsConfiguration: // -// * DeleteBucketMetricsConfiguration +// * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) // -// * PutBucketMetricsConfiguration +// * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) // -// * ListBucketMetricsConfigurations +// * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) // // GetBucketLifecycle has the following special error: // @@ -7528,12 +7553,17 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re output = &PutBucketNotificationOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } // PutBucketNotification API operation for Amazon Simple Storage Service. // -// No longer used, see the PutBucketNotificationConfiguration operation. +// No longer used, see the PutBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) +// operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7660,7 +7690,7 @@ func (c *S3) PutBucketNotificationConfigurationRequest(input *PutBucketNotificat // // The following operation is related to PutBucketNotificationConfiguration: // -// * GetBucketNotificationConfiguration +// * GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7730,6 +7760,10 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R output = &PutBucketPolicyOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -7754,9 +7788,9 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R // // The following operations are related to PutBucketPolicy: // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * DeleteBucket +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7826,6 +7860,10 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req output = &PutBucketReplicationOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -7856,6 +7894,13 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req // When you add the Filter element in the configuration, you must also add the // following elements: DeleteMarkerReplication, Status, and Priority. // +// The latest version of the replication configuration XML is V2. XML V2 replication +// configurations are those that contain the Filter element for rules, and rules +// that specify S3 Replication Time Control (S3 RTC). In XML V2 replication +// configurations, Amazon S3 doesn't replicate delete markers. Therefore, you +// must set the DeleteMarkerReplication element to Disabled. For backward compatibility, +// Amazon S3 continues to support the XML V1 replication configuration. +// // For information about enabling versioning on a bucket, see Using Versioning // (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). // @@ -7874,13 +7919,14 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req // replication configuration, see Replicating Objects Created with SSE Using // CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). // -// For information on PutBucketReplication errors, see ReplicationErrorCodeList +// For information on PutBucketReplication errors, see List of replication-related +// error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) // // The following operations are related to PutBucketReplication: // -// * GetBucketReplication +// * GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) // -// * DeleteBucketReplication +// * DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -7950,6 +7996,10 @@ func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput) output = &PutBucketRequestPaymentOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -7963,9 +8013,9 @@ func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput) // // The following operations are related to PutBucketRequestPayment: // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * GetBucketRequestPayment +// * GetBucketRequestPayment (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8035,6 +8085,10 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request output = &PutBucketTaggingOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8065,8 +8119,8 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request // * Error code: InvalidTagError Description: The tag provided was not a // valid tag. This error can occur if the tag did not pass input validation. // For information about tag restrictions, see User-Defined Tag Restrictions -// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2//allocation-tag-restrictions.html) -// and AWS-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2//aws-tag-restrictions.html). +// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) +// and AWS-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html). // // * Error code: MalformedXMLError Description: The XML provided does not // match the schema. @@ -8079,9 +8133,9 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request // // The following operations are related to PutBucketTagging: // -// * GetBucketTagging +// * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) // -// * DeleteBucketTagging +// * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8151,6 +8205,10 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r output = &PutBucketVersioningOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8168,7 +8226,8 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r // added to the bucket receive the version ID null. // // If the versioning state has never been set on a bucket, it has no versioning -// state; a GetBucketVersioning request does not return a versioning state value. +// state; a GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) +// request does not return a versioning state value. // // If the bucket owner enables MFA Delete in the bucket versioning configuration, // the bucket owner must include the x-amz-mfa request header and the Status @@ -8185,11 +8244,11 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r // // Related Resources // -// * CreateBucket +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) // -// * DeleteBucket +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) // -// * GetBucketVersioning +// * GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8259,6 +8318,10 @@ func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request output = &PutBucketWebsiteOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8326,6 +8389,11 @@ func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request // // * HttpRedirectCode // +// Amazon S3 has a limitation of 50 routing rules per website configuration. +// If you require more than 50 routing rules, you can use object redirect. For +// more information, see Configuring an Object Redirect (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) +// in the Amazon Simple Storage Service Developer Guide. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -8415,12 +8483,12 @@ func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, outp // you can calculate the MD5 while putting an object to Amazon S3 and compare // the returned ETag to the calculated MD5 value. // -// To configure your application to send the request headers before sending -// the request body, use the 100-continue HTTP status code. For PUT operations, -// this helps you avoid sending the message body if the message is rejected -// based on the headers (for example, because authentication fails or a redirect -// occurs). For more information on the 100-continue HTTP status code, see Section -// 8.2.3 of http://www.ietf.org/rfc/rfc2616.txt (http://www.ietf.org/rfc/rfc2616.txt). +// The Content-MD5 header is required for any request to upload an object with +// a retention period configured using Amazon S3 Object Lock. For more information +// about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Server-side Encryption // // You can optionally request server-side encryption. With server-side encryption, // Amazon S3 encrypts your data as it writes it to disks in its data centers @@ -8428,149 +8496,41 @@ func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, outp // your own encryption key or use AWS managed encryption keys. For more information, // see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html). // -// Access Permissions -// -// You can optionally specify the accounts or groups that should be granted -// specific permissions on the new object. There are two ways to grant the permissions -// using the request headers: -// -// * Specify a canned ACL with the x-amz-acl request header. For more information, -// see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). -// -// * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, -// x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters -// map to the set of permissions that Amazon S3 supports in an ACL. For more -// information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). -// -// You can use either a canned ACL or specify access permissions explicitly. -// You cannot do both. -// -// Server-Side- Encryption-Specific Request Headers -// -// You can optionally tell Amazon S3 to encrypt data at rest using server-side -// encryption. Server-side encryption is for data encryption at rest. Amazon -// S3 encrypts your data as it writes it to disks in its data centers and decrypts -// it when you access it. The option you use depends on whether you want to -// use AWS managed encryption keys or provide your own encryption key. -// -// * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) -// stored in AWS Key Management Service (AWS KMS) – If you want AWS to -// manage the keys used to encrypt data, specify the following headers in -// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id -// x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, -// but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon -// S3 uses the AWS managed CMK in AWS KMS to protect the data. If you want -// to use a customer managed AWS KMS CMK, you must provide the x-amz-server-side-encryption-aws-kms-key-id -// of the symmetric customer managed CMK. Amazon S3 only supports symmetric -// CMKs and not asymmetric CMKs. For more information, see Using Symmetric -// and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. All GET and PUT requests -// for an object protected by AWS KMS fail if you don't make them with SSL -// or by using SigV4. For more information about server-side encryption with -// CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with CMKs stored in AWS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). -// -// * Use customer-provided encryption keys – If you want to manage your -// own encryption keys, provide all the following headers in the request. -// x-amz-server-side​-encryption​-customer-algorithm x-amz-server-side​-encryption​-customer-key -// x-amz-server-side​-encryption​-customer-key-MD5 For more information -// about server-side encryption with CMKs stored in KMS (SSE-KMS), see Protecting -// Data Using Server-Side Encryption with CMKs stored in AWS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). -// -// Access-Control-List (ACL)-Specific Request Headers -// -// You also can use the following access control–related headers with this -// operation. By default, all objects are private. Only the owner has full access -// control. When adding a new object, you can grant permissions to individual -// AWS accounts or to predefined groups defined by Amazon S3. These permissions -// are then added to the Access Control List (ACL) on the object. For more information, -// see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// With this operation, you can grant access permissions using one of the following -// two methods: -// -// * Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined -// ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees -// and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). -// -// * Specify access permissions explicitly — To explicitly grant access -// permissions to specific AWS accounts or groups, use the following headers. -// Each header maps to specific permissions that Amazon S3 supports in an -// ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). -// In the header, you specify a list of grantees who get the specific permission. -// To grant permissions explicitly use: x-amz-grant-read x-amz-grant-write -// x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You -// specify each grantee as a type=value pair, where the type is one of the -// following: emailAddress – if the value specified is the email address -// of an AWS account Using email addresses to specify a grantee is only supported -// in the following AWS Regions: US East (N. Virginia) US West (N. California) -// US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific -// (Tokyo) EU (Ireland) South America (São Paulo) For a list of all the -// Amazon S3 supported Regions and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the AWS General Reference id – if the value specified is the canonical -// user ID of an AWS account uri – if you are granting permissions to a -// predefined group For example, the following x-amz-grant-read header grants -// the AWS accounts identified by email addresses permissions to read object -// data and its metadata: x-amz-grant-read: emailAddress="xyz@amazon.com", -// emailAddress="abc@amazon.com" -// -// Server-Side- Encryption-Specific Request Headers -// -// You can optionally tell Amazon S3 to encrypt data at rest using server-side -// encryption. Server-side encryption is for data encryption at rest. Amazon -// S3 encrypts your data as it writes it to disks in its data centers and decrypts -// it when you access it. The option you use depends on whether you want to -// use AWS-managed encryption keys or provide your own encryption key. -// -// * Use encryption keys managed by Amazon S3 or customer master keys (CMKs) -// stored in AWS Key Management Service (AWS KMS) – If you want AWS to -// manage the keys used to encrypt data, specify the following headers in -// the request. x-amz-server-side​-encryption x-amz-server-side-encryption-aws-kms-key-id -// x-amz-server-side-encryption-context If you specify x-amz-server-side-encryption:aws:kms, -// but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon -// S3 uses the AWS managed CMK in AWS KMS to protect the data. If you want -// to use a customer managed AWS KMS CMK, you must provide the x-amz-server-side-encryption-aws-kms-key-id -// of the symmetric customer managed CMK. Amazon S3 only supports symmetric -// CMKs and not asymmetric CMKs. For more information, see Using Symmetric -// and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) -// in the AWS Key Management Service Developer Guide. All GET and PUT requests -// for an object protected by AWS KMS fail if you don't make them with SSL -// or by using SigV4. For more information about server-side encryption with -// CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// Access Control List (ACL)-Specific Request Headers // -// * Use customer-provided encryption keys – If you want to manage your -// own encryption keys, provide all the following headers in the request. -// If you use this feature, the ETag value that Amazon S3 returns in the -// response is not the MD5 of the object. x-amz-server-side​-encryption​-customer-algorithm -// x-amz-server-side​-encryption​-customer-key x-amz-server-side​-encryption​-customer-key-MD5 -// For more information about server-side encryption with CMKs stored in -// AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with -// CMKs stored in AWS KMS (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). +// You can use headers to grant ACL- based permissions. By default, all objects +// are private. Only the owner has full access control. When adding a new object, +// you can grant permissions to individual AWS accounts or to predefined groups +// defined by Amazon S3. These permissions are then added to the ACL on the +// object. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) +// and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). // // Storage Class Options // -// By default, Amazon S3 uses the Standard storage class to store newly created -// objects. The Standard storage class provides high durability and high availability. -// You can specify other storage classes depending on the performance needs. +// By default, Amazon S3 uses the STANDARD storage class to store newly created +// objects. The STANDARD storage class provides high durability and high availability. +// Depending on performance needs, you can specify a different storage class. // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) -// in the Amazon Simple Storage Service Developer Guide. +// in the Amazon S3 Service Developer Guide. // // Versioning // // If you enable versioning for a bucket, Amazon S3 automatically generates // a unique version ID for the object being stored. Amazon S3 returns this ID -// in the response using the x-amz-version-id response header. If versioning -// is suspended, Amazon S3 always uses null as the version ID for the object -// stored. For more information about returning the versioning state of a bucket, -// see GetBucketVersioning. If you enable versioning for a bucket, when Amazon -// S3 receives multiple write requests for the same object simultaneously, it -// stores all of the objects. +// in the response. When you enable versioning for a bucket, if Amazon S3 receives +// multiple write requests for the same object simultaneously, it stores all +// of the objects. +// +// For more information about versioning, see Adding Objects to Versioning Enabled +// Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html). +// For information about returning the versioning state of a bucket, see GetBucketVersioning +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). // // Related Resources // -// * CopyObject +// * CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) // -// * DeleteObject +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8639,6 +8599,10 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request output = &PutObjectAclOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8651,7 +8615,9 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // Depending on your application needs, you can choose to set the ACL on an // object using either the request body or the headers. For example, if you // have an existing application that updates a bucket ACL using the request -// body, you can continue to use that approach. +// body, you can continue to use that approach. For more information, see Access +// Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) +// in the Amazon S3 Developer Guide. // // Access Permissions // @@ -8673,12 +8639,19 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // S3 supports in an ACL. For more information, see Access Control List (ACL) // Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). // You specify each grantee as a type=value pair, where the type is one of -// the following: emailAddress – if the value specified is the email address -// of an AWS account id – if the value specified is the canonical user -// ID of an AWS account uri – if you are granting permissions to a predefined -// group For example, the following x-amz-grant-read header grants list objects -// permission to the two AWS accounts identified by their email addresses. -// x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// the following: id – if the value specified is the canonical user ID +// of an AWS account uri – if you are granting permissions to a predefined +// group emailAddress – if the value specified is the email address of +// an AWS account Using email addresses to specify a grantee is only supported +// in the following AWS Regions: US East (N. Virginia) US West (N. California) +// US West (Oregon) Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific +// (Tokyo) Europe (Ireland) South America (São Paulo) For a list of all +// the Amazon S3 supported Regions and endpoints, see Regions and Endpoints +// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in +// the AWS General Reference. For example, the following x-amz-grant-read +// header grants list objects permission to the two AWS accounts identified +// by their email addresses. x-amz-grant-read: emailAddress="xyz@amazon.com", +// emailAddress="abc@amazon.com" // // You can use either a canned ACL or specify access permissions explicitly. // You cannot do both. @@ -8688,11 +8661,6 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // You can specify the person (grantee) to whom you're assigning access rights // (using request elements) in the following ways: // -// * By Email address: <>Grantees@email.com<>lt;/Grantee> -// The grantee is resolved to the CanonicalUser and, in a response to a GET -// Object acl request, appears as the CanonicalUser. -// // * By the person's ID: <>ID<><>GranteesEmail<> // DisplayName is optional and ignored in the request. @@ -8700,6 +8668,17 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // * By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> // +// * By Email address: <>Grantees@email.com<>lt;/Grantee> +// The grantee is resolved to the CanonicalUser and, in a response to a GET +// Object acl request, appears as the CanonicalUser. Using email addresses +// to specify a grantee is only supported in the following AWS Regions: US +// East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific +// (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) +// South America (São Paulo) For a list of all the Amazon S3 supported Regions +// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) +// in the AWS General Reference. +// // Versioning // // The ACL of an object is set at the object version level. By default, PUT @@ -8708,9 +8687,9 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // // Related Resources // -// * CopyObject +// * CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -8784,6 +8763,10 @@ func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *req output = &PutObjectLegalHoldOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8862,6 +8845,10 @@ func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfiguration output = &PutObjectLockConfigurationOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -8945,6 +8932,10 @@ func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *req output = &PutObjectRetentionOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -9023,17 +9014,21 @@ func (c *S3) PutObjectTaggingRequest(input *PutObjectTaggingInput) (req *request output = &PutObjectTaggingOutput{} req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } // PutObjectTagging API operation for Amazon Simple Storage Service. // -// Sets the supplied tag-set to an object that already exists in a bucket +// Sets the supplied tag-set to an object that already exists in a bucket. // // A tag is a key-value pair. You can associate tags with an object by sending // a PUT request against the tagging subresource that is associated with the // object. You can retrieve tags by sending a GET request. For more information, -// see GetObjectTagging. +// see GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). // // For tagging-related restrictions related to characters and encodings, see // Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). @@ -9065,7 +9060,7 @@ func (c *S3) PutObjectTaggingRequest(input *PutObjectTaggingInput) (req *request // // Related Resources // -// * GetObjectTagging +// * GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -9135,6 +9130,10 @@ func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req output = &PutPublicAccessBlockOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } @@ -9157,11 +9156,11 @@ func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req // // Related Resources // -// * GetPublicAccessBlock +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) // -// * DeletePublicAccessBlock +// * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) // -// * GetBucketPolicyStatus +// * GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) // // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) // @@ -9246,9 +9245,9 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // * restore an archive - Restore an archived object // // To use this operation, you must have permissions to perform the s3:RestoreObject -// and s3:GetObject actions. The bucket owner has this permission by default -// and can grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// action. The bucket owner has this permission by default and can grant this +// permission to others. For more information about permissions, see Permissions +// Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) // in the Amazon Simple Storage Service Developer Guide. // @@ -9273,7 +9272,8 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // (https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html) // in the Amazon Simple Storage Service Developer Guide. For more information // about the S3 structure in the request body, see the following: PutObject -// Managing Access with ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) Managing +// Access with ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) // in the Amazon Simple Storage Service Developer Guide Protecting Data Using // Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) // in the Amazon Simple Storage Service Developer Guide @@ -9290,8 +9290,8 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // the query.) You cannot mix ordinal positions with header column names. // SELECT s.Id, s.FirstName, s.SSN FROM S3Object s // -// For more information about using SQL with Glacier Select restore, see SQL -// Reference for Amazon S3 Select and Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) +// For more information about using SQL with S3 Glacier Select restore, see +// SQL Reference for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) // in the Amazon Simple Storage Service Developer Guide. // // When making a select request, you can also do the following: @@ -9344,12 +9344,12 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // retrievals and provisioned capacity are not available for the DEEP_ARCHIVE // storage class. // -// * Standard - Standard retrievals allow you to access any of your archived +// * Standard - S3 Standard retrievals allow you to access any of your archived // objects within several hours. This is the default option for the GLACIER // and DEEP_ARCHIVE retrieval requests that do not specify the retrieval -// option. Standard retrievals typically complete within 3-5 hours from the -// GLACIER storage class and typically complete within 12 hours from the -// DEEP_ARCHIVE storage class. +// option. S3 Standard retrievals typically complete within 3-5 hours from +// the GLACIER storage class and typically complete within 12 hours from +// the DEEP_ARCHIVE storage class. // // * Bulk - Bulk retrievals are Amazon S3 Glacier’s lowest-cost retrieval // option, enabling you to retrieve large amounts, even petabytes, of data @@ -9389,7 +9389,8 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // specify in a restore request. For example, if you restore an object copy // for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes // the object in 3 days. For more information about lifecycle configuration, -// see PutBucketLifecycleConfiguration and Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) +// see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) +// and Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) // in Amazon Simple Storage Service Developer Guide. // // Responses @@ -9408,19 +9409,19 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // (This error does not apply to SELECT type requests.) HTTP Status Code: // 409 Conflict SOAP Fault Code Prefix: Client // -// * Code: GlacierExpeditedRetrievalNotAvailable Cause: Glacier expedited +// * Code: GlacierExpeditedRetrievalNotAvailable Cause: S3 Glacier expedited // retrievals are currently not available. Try again later. (Returned if // there is insufficient capacity to process the Expedited request. This -// error applies only to Expedited retrievals and not to Standard or Bulk +// error applies only to Expedited retrievals and not to S3 Standard or Bulk // retrievals.) HTTP Status Code: 503 SOAP Fault Code Prefix: N/A // // Related Resources // -// * PutBucketLifecycleConfiguration +// * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) // -// * GetBucketNotificationConfiguration +// * GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) // -// * SQL Reference for Amazon S3 Select and Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) +// * SQL Reference for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) // in the Amazon Simple Storage Service Developer Guide // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -9522,7 +9523,7 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // in the Amazon Simple Storage Service Developer Guide. // // For more information about using SQL with Amazon S3 Select, see SQL Reference -// for Amazon S3 Select and Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) +// for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) // in the Amazon Simple Storage Service Developer Guide. // // Permissions @@ -9550,8 +9551,8 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // * Server-side encryption - Amazon S3 Select supports querying objects // that are protected with server-side encryption. For objects that are encrypted // with customer-provided encryption keys (SSE-C), you must use HTTPS, and -// you must use the headers that are documented in the GetObject. For more -// information about SSE-C, see Server-Side Encryption (Using Customer-Provided +// you must use the headers that are documented in the GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). +// For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon Simple Storage Service Developer Guide. For objects that // are encrypted with Amazon S3 managed encryption keys (SSE-S3) and customer @@ -9565,16 +9566,18 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // // Given the response size is unknown, Amazon S3 Select streams the response // as a series of messages and includes a Transfer-Encoding header with chunked -// as its value in the response. For more information, see RESTSelectObjectAppendix . +// as its value in the response. For more information, see Appendix: SelectObjectContent +// Response (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html) . // // GetObject Support // // The SelectObjectContent operation does not support the following GetObject -// functionality. For more information, see GetObject. +// functionality. For more information, see GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). // -// * Range: While you can specify a scan range for a Amazon S3 Select request, -// see SelectObjectContentRequest$ScanRange in the request parameters below, -// you cannot specify the range of bytes of an object to return. +// * Range: Although you can specify a scan range for an Amazon S3 Select +// request (see SelectObjectContentRequest - ScanRange (https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange) +// in the request parameters), you cannot specify the range of bytes of an +// object to return. // // * GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot // specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. @@ -9583,16 +9586,16 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // // Special Errors // -// For a list of special errors for this operation and for general information -// about Amazon S3 errors and a list of error codes, see ErrorResponses +// For a list of special errors for this operation, see List of SELECT Object +// Content Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList) // // Related Resources // -// * GetObject +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) // -// * GetBucketLifecycleConfiguration +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) // -// * PutBucketLifecycleConfiguration +// * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -9622,6 +9625,8 @@ func (c *S3) SelectObjectContentWithContext(ctx aws.Context, input *SelectObject return out, req.Send() } +var _ awserr.Error + // SelectObjectContentEventStream provides the event stream handling for the SelectObjectContent. type SelectObjectContentEventStream struct { @@ -9696,6 +9701,7 @@ func (es *SelectObjectContentEventStream) waitStreamPartClose() { // * ProgressEvent // * RecordsEvent // * StatsEvent +// * SelectObjectContentEventStreamUnknownEvent func (es *SelectObjectContentEventStream) Events() <-chan SelectObjectContentEventStreamEvent { return es.Reader.Events() } @@ -9812,12 +9818,13 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // In this operation, you provide part data in your request. However, you have // an option to specify your existing Amazon S3 object as a data source for // the part you are uploading. To upload a part from an existing object, you -// use the UploadPartCopy operation. +// use the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) +// operation. // -// You must initiate a multipart upload (see CreateMultipartUpload) before you -// can upload any part. In response to your initiate request, Amazon S3 returns -// an upload ID, a unique identifier, that you must include in your upload part -// request. +// You must initiate a multipart upload (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)) +// before you can upload any part. In response to your initiate request, Amazon +// S3 returns an upload ID, a unique identifier, that you must include in your +// upload part request. // // Part numbers can be any number from 1 to 10,000, inclusive. A part number // uniquely identifies a part and also defines its position within the object @@ -9851,25 +9858,25 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // key, or you can use the AWS managed encryption keys. If you choose to provide // your own encryption key, the request headers you provide in the request must // match the headers you used in the request to initiate the upload by using -// CreateMultipartUpload. For more information, go to Using Server-Side Encryption -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) +// CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). +// For more information, go to Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) // in the Amazon Simple Storage Service Developer Guide. // // Server-side encryption is supported by the S3 Multipart Upload actions. Unless // you are using a customer-provided encryption key, you don't need to specify // the encryption parameters in each UploadPart request. Instead, you only need // to specify the server-side encryption parameters in the initial Initiate -// Multipart request. For more information, see CreateMultipartUpload. +// Multipart request. For more information, see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). // // If you requested server-side encryption using a customer-provided encryption // key in your initiate multipart upload request, you must provide identical // encryption information in each part upload using the following headers. // -// * x-amz-server-side​-encryption​-customer-algorithm +// * x-amz-server-side-encryption-customer-algorithm // -// * x-amz-server-side​-encryption​-customer-key +// * x-amz-server-side-encryption-customer-key // -// * x-amz-server-side​-encryption​-customer-key-MD5 +// * x-amz-server-side-encryption-customer-key-MD5 // // Special Errors // @@ -9880,15 +9887,15 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // // Related Resources // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -9972,7 +9979,8 @@ func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Req // in the Amazon Simple Storage Service Developer Guide. // // Instead of using an existing object as part data, you might use the UploadPart -// operation and provide data in your request. +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) operation +// and provide data in your request. // // You must initiate a multipart upload before you can upload any part. In response // to your initiate request. Amazon S3 returns a unique identifier, the upload @@ -9993,8 +10001,8 @@ func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Req // in the Amazon Simple Storage Service Developer Guide. // // * For information about using server-side encryption with customer-provided -// encryption keys with the UploadPartCopy operation, see CopyObject and -// UploadPart. +// encryption keys with the UploadPartCopy operation, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) +// and UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). // // Note the following additional considerations about the request headers x-amz-copy-source-if-match, // x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and @@ -10039,17 +10047,17 @@ func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Req // // Related Resources // -// * CreateMultipartUpload +// * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) // -// * UploadPart +// * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) // -// * CompleteMultipartUpload +// * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) // -// * AbortMultipartUpload +// * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) // -// * ListParts +// * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) // -// * ListMultipartUploads +// * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -10615,8 +10623,11 @@ type AnalyticsS3BucketDestination struct { // Bucket is a required field Bucket *string `type:"string" required:"true"` - // The account ID that owns the destination bucket. If no account ID is provided, - // the owner will not be validated prior to exporting data. + // The account ID that owns the destination S3 bucket. If no account ID is provided, + // the owner is not validated before exporting data. + // + // Although this value is optional, we strongly recommend that you set it to + // help prevent problems if the destination bucket ownership changes. BucketAccountId *string `type:"string"` // Specifies the file format used when exporting data to Amazon S3. @@ -11578,6 +11589,8 @@ func (s *ContinuationEvent) UnmarshalEvent( return nil } +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. func (s *ContinuationEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) return msg, err @@ -11694,7 +11707,7 @@ type CopyObjectInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -12457,7 +12470,7 @@ type CreateMultipartUploadInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -14133,7 +14146,7 @@ type DeleteObjectTaggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Name of the tag. + // Name of the object key. // // Key is a required field Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` @@ -14575,9 +14588,9 @@ type Destination struct { // must be replicated. Must be specified together with a Metrics block. ReplicationTime *ReplicationTime `type:"structure"` - // The storage class to use when replicating objects, such as standard or reduced - // redundancy. By default, Amazon S3 uses the storage class of the source object - // to create the object replica. + // The storage class to use when replicating objects, such as S3 Standard or + // reduced redundancy. By default, Amazon S3 uses the storage class of the source + // object to create the object replica. // // For valid values, see the StorageClass element of the PUT Bucket replication // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) @@ -14794,6 +14807,8 @@ func (s *EndEvent) UnmarshalEvent( return nil } +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. func (s *EndEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) return msg, err @@ -16110,6 +16125,7 @@ type GetBucketLocationOutput struct { // Specifies the Region where the bucket resides. For a list of all the Amazon // S3 supported location constraints by Region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). + // Buckets in Region us-east-1 have a LocationConstraint of null. LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` } @@ -16319,7 +16335,7 @@ func (s *GetBucketMetricsConfigurationOutput) SetMetricsConfiguration(v *Metrics type GetBucketNotificationConfigurationRequest struct { _ struct{} `locationName:"GetBucketNotificationConfigurationRequest" type:"structure"` - // Name of the bucket for which to get the notification configuration + // Name of the bucket for which to get the notification configuration. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -16967,10 +16983,10 @@ func (s *GetBucketWebsiteInput) hasEndpointARN() bool { type GetBucketWebsiteOutput struct { _ struct{} `type:"structure"` - // The name of the error document for the website. + // The object key name of the website error document to use for 4XX class errors. ErrorDocument *ErrorDocument `type:"structure"` - // The name of the index document for the website. + // The name of the index document for the website (for example index.html). IndexDocument *IndexDocument `type:"structure"` // Specifies the redirect behavior of all requests to a website endpoint of @@ -17207,7 +17223,10 @@ type GetObjectInput struct { PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` // Downloads the specified range bytes of an object. For more information about - // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + // the HTTP Range header, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 + // (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35). + // + // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. Range *string `location:"header" locationName:"Range" type:"string"` // Confirms that the requester knows that they will be charged for the request. @@ -17242,7 +17261,7 @@ type GetObjectInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -17756,7 +17775,7 @@ type GetObjectOutput struct { ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Provides storage class information of the object. Amazon S3 returns this - // header for all objects except for Standard storage class objects. + // header for all objects except for S3 Standard storage class objects. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The number of tags, if any, on the object. @@ -18441,11 +18460,11 @@ func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *Public return s } -// Container for Glacier job parameters. +// Container for S3 Glacier job parameters. type GlacierJobParameters struct { _ struct{} `type:"structure"` - // Glacier retrieval tier at which the restore will be processed. + // S3 Glacier retrieval tier at which the restore will be processed. // // Tier is a required field Tier *string `type:"string" required:"true" enum:"Tier"` @@ -18536,6 +18555,29 @@ type Grantee struct { DisplayName *string `type:"string"` // Email address of the grantee. + // + // Using email addresses to specify a grantee is only supported in the following + // AWS Regions: + // + // * US East (N. Virginia) + // + // * US West (N. California) + // + // * US West (Oregon) + // + // * Asia Pacific (Singapore) + // + // * Asia Pacific (Sydney) + // + // * Asia Pacific (Tokyo) + // + // * Europe (Ireland) + // + // * South America (São Paulo) + // + // For a list of all the Amazon S3 supported Regions and endpoints, see Regions + // and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + // in the AWS General Reference. EmailAddress *string `type:"string"` // The canonical user ID of the grantee. @@ -18716,6 +18758,8 @@ type HeadObjectInput struct { // Downloads the specified range bytes of an object. For more information about // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + // + // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. Range *string `location:"header" locationName:"Range" type:"string"` // Confirms that the requester knows that they will be charged for the request. @@ -18732,7 +18776,7 @@ type HeadObjectInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -18993,7 +19037,8 @@ type HeadObjectOutput struct { // If the object is an archived object (an object whose storage class is GLACIER), // the response includes this header if either the archive restoration is in - // progress (see RestoreObject or an archive copy is already restored. + // progress (see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) + // or an archive copy is already restored. // // If an archive copy is already restored, the header value indicates when Amazon // S3 is scheduled to delete the object copy. For example: @@ -19029,7 +19074,7 @@ type HeadObjectOutput struct { ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Provides storage class information of the object. Amazon S3 returns this - // header for all objects except for Standard storage class objects. + // header for all objects except for S3 Standard storage class objects. // // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` @@ -19624,7 +19669,11 @@ func (s *InventoryFilter) SetPrefix(v string) *InventoryFilter { type InventoryS3BucketDestination struct { _ struct{} `type:"structure"` - // The ID of the account that owns the destination bucket. + // The account ID that owns the destination S3 bucket. If no account ID is provided, + // the owner is not validated before exporting data. + // + // Although this value is optional, we strongly recommend that you set it to + // help prevent problems if the destination bucket ownership changes. AccountId *string `type:"string"` // The Amazon Resource Name (ARN) of the bucket where inventory results will @@ -19781,7 +19830,8 @@ func (s *JSONInput) SetType(v string) *JSONInput { type JSONOutput struct { _ struct{} `type:"structure"` - // The value used to separate individual records in the output. + // The value used to separate individual records in the output. If no value + // is specified, Amazon S3 uses a newline character ('\n'). RecordDelimiter *string `type:"string"` } @@ -21017,11 +21067,12 @@ type ListObjectVersionsInput struct { // Specifies the key to start with when listing objects in a bucket. KeyMarker *string `location:"querystring" locationName:"key-marker" type:"string"` - // Sets the maximum number of keys returned in the response. The response might - // contain fewer keys but will never contain more. If additional keys satisfy - // the search criteria, but were not returned because max-keys was exceeded, - // the response contains true. To return the additional - // keys, see key-marker and version-id-marker. + // Sets the maximum number of keys returned in the response. By default the + // API returns up to 1,000 key names. The response might contain fewer keys + // but will never contain more. If additional keys satisfy the search criteria, + // but were not returned because max-keys was exceeded, the response contains + // true. To return the additional keys, see key-marker + // and version-id-marker. MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` // Use this parameter to select only those keys that begin with the specified @@ -21298,8 +21349,9 @@ type ListObjectsInput struct { // Specifies the key to start with when listing objects in a bucket. Marker *string `location:"querystring" locationName:"marker" type:"string"` - // Sets the maximum number of keys returned in the response. The response might - // contain fewer keys but will never contain more. + // Sets the maximum number of keys returned in the response. By default the + // API returns up to 1,000 key names. The response might contain fewer keys + // but will never contain more. MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` // Limits the response to keys that begin with the specified prefix. @@ -21451,7 +21503,7 @@ type ListObjectsOutput struct { // is true), you can use the key name in this field as marker in the subsequent // request to get next set of objects. Amazon S3 lists objects in alphabetical // order Note: This element is returned only if you have delimiter request parameter - // specified. If response does not include the NextMaker and it is truncated, + // specified. If response does not include the NextMarker and it is truncated, // you can use the value of the last Key in the response as the marker in the // subsequent request to get the next set of object keys. NextMarker *string `type:"string"` @@ -21561,8 +21613,9 @@ type ListObjectsV2Input struct { // true. FetchOwner *bool `location:"querystring" locationName:"fetch-owner" type:"boolean"` - // Sets the maximum number of keys returned in the response. The response might - // contain fewer keys but will never contain more. + // Sets the maximum number of keys returned in the response. By default the + // API returns up to 1,000 key names. The response might contain fewer keys + // but will never contain more. MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` // Limits the response to keys that begin with the specified prefix. @@ -21731,8 +21784,9 @@ type ListObjectsV2Output struct { // result will include less than equals 50 keys KeyCount *int64 `type:"integer"` - // Sets the maximum number of keys returned in the response. The response might - // contain fewer keys but will never contain more. + // Sets the maximum number of keys returned in the response. By default the + // API returns up to 1,000 key names. The response might contain fewer keys + // but will never contain more. MaxKeys *int64 `type:"integer"` // Bucket name. @@ -22929,8 +22983,22 @@ func (s *NotificationConfigurationFilter) SetKey(v *KeyFilter) *NotificationConf type Object struct { _ struct{} `type:"structure"` - // The entity tag is an MD5 hash of the object. ETag reflects only changes to - // the contents of an object, not its metadata. + // The entity tag is a hash of the object. The ETag reflects changes only to + // the contents of an object, not its metadata. The ETag may or may not be an + // MD5 digest of the object data. Whether or not it is depends on how the object + // was created and how it is encrypted as described below: + // + // * Objects created by the PUT Object, POST Object, or Copy operation, or + // through the AWS Management Console, and are encrypted by SSE-S3 or plaintext, + // have ETags that are an MD5 digest of their object data. + // + // * Objects created by the PUT Object, POST Object, or Copy operation, or + // through the AWS Management Console, and are encrypted by SSE-C or SSE-KMS, + // have ETags that are not an MD5 digest of their object data. + // + // * If an object is created by either the Multipart Upload or Part Copy + // operation, the ETag is not an MD5 digest, regardless of the method of + // encryption. ETag *string `type:"string"` // The name that you assign to an object. You use the object key to retrieve @@ -23530,6 +23598,8 @@ func (s *ProgressEvent) UnmarshalEvent( return nil } +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. func (s *ProgressEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) var buf bytes.Buffer @@ -23976,7 +24046,7 @@ type PutBucketCorsInput struct { // Describes the cross-origin access configuration for objects in an Amazon // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing - // (https://docs.aws.amazon.com/AmazonS3/latest/dev//cors.html) in the Amazon + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon // Simple Storage Service Developer Guide. // // CORSConfiguration is a required field @@ -25737,7 +25807,7 @@ type PutObjectInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -25767,8 +25837,8 @@ type PutObjectInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // If you don't specify, Standard is the default storage class. Amazon S3 supports - // other storage classes. + // If you don't specify, S3 Standard is the default storage class. Amazon S3 + // supports other storage classes. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. @@ -26302,7 +26372,8 @@ type PutObjectOutput struct { // Entity tag for the uploaded object. ETag *string `location:"header" locationName:"ETag" type:"string"` - // If the expiration is configured for the object (see PutBucketLifecycleConfiguration), + // If the expiration is configured for the object (see PutBucketLifecycleConfiguration + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)), // the response includes this header. It includes the expiry-date and rule-id // key-value pairs that provide information about object expiration. The value // of the rule-id is URL encoded. @@ -26575,7 +26646,7 @@ type PutObjectTaggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Name of the tag. + // Name of the object key. // // Key is a required field Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` @@ -26868,10 +26939,10 @@ func (s *QueueConfiguration) SetQueueArn(v string) *QueueConfiguration { return s } -// This data type is deprecated. Use QueueConfiguration for the same purposes. -// This data type specifies the configuration for publishing messages to an -// Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified -// events. +// This data type is deprecated. Use QueueConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_QueueConfiguration.html) +// for the same purposes. This data type specifies the configuration for publishing +// messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon +// S3 detects specified events. type QueueConfigurationDeprecated struct { _ struct{} `type:"structure"` @@ -26966,6 +27037,8 @@ func (s *RecordsEvent) UnmarshalEvent( return nil } +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. func (s *RecordsEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) msg.Headers.Set(":content-type", eventstream.StringValue("application/octet-stream")) @@ -27784,7 +27857,7 @@ type RestoreRequest struct { // The optional description for the job. Description *string `type:"string"` - // Glacier related parameters pertaining to this job. Do not use with restores + // S3 Glacier related parameters pertaining to this job. Do not use with restores // that specify OutputLocation. GlacierJobParameters *GlacierJobParameters `type:"structure"` @@ -27794,7 +27867,7 @@ type RestoreRequest struct { // Describes the parameters for Select job types. SelectParameters *SelectParameters `type:"structure"` - // Glacier retrieval tier at which the restore will be processed. + // S3 Glacier retrieval tier at which the restore will be processed. Tier *string `type:"string" enum:"Tier"` // Type of restore request. @@ -27878,7 +27951,10 @@ func (s *RestoreRequest) SetType(v string) *RestoreRequest { return s } -// Specifies the redirect behavior and when a redirect is applied. +// Specifies the redirect behavior and when a redirect is applied. For more +// information about routing rules, see Configuring advanced conditional redirects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) +// in the Amazon Simple Storage Service Developer Guide. type RoutingRule struct { _ struct{} `type:"structure"` @@ -27932,8 +28008,9 @@ func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule { } // Specifies lifecycle rules for an Amazon S3 bucket. For more information, -// see PUT Bucket lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) -// in the Amazon Simple Storage Service API Reference. +// see Put Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) +// in the Amazon Simple Storage Service API Reference. For examples, see Put +// Bucket Lifecycle Configuration Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples) type Rule struct { _ struct{} `type:"structure"` @@ -27978,7 +28055,10 @@ type Rule struct { // Status is a required field Status *string `type:"string" required:"true" enum:"ExpirationStatus"` - // Specifies when an object transitions to a specified storage class. + // Specifies when an object transitions to a specified storage class. For more + // information about Amazon S3 lifecycle configuration rules, see Transitioning + // Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) + // in the Amazon Simple Storage Service Developer Guide. Transition *Transition `type:"structure"` } @@ -28182,6 +28262,7 @@ type SelectObjectContentEventStreamEvent interface { // * ProgressEvent // * RecordsEvent // * StatsEvent +// * SelectObjectContentEventStreamUnknownEvent type SelectObjectContentEventStreamReader interface { // Returns a channel of events as they are read from the event stream. Events() <-chan SelectObjectContentEventStreamEvent @@ -28256,6 +28337,9 @@ func (r *readSelectObjectContentEventStream) readEventStream() { return default: } + if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { + continue + } r.err.SetError(err) return } @@ -28285,14 +28369,39 @@ func (u unmarshalerForSelectObjectContentEventStreamEvent) UnmarshalerForEventNa case "Stats": return &StatsEvent{}, nil default: - return nil, awserr.New( - request.ErrCodeSerialization, - fmt.Sprintf("unknown event type name, %s, for SelectObjectContentEventStream", eventType), - nil, - ) + return &SelectObjectContentEventStreamUnknownEvent{Type: eventType}, nil } } +// SelectObjectContentEventStreamUnknownEvent provides a failsafe event for the +// SelectObjectContentEventStream group of events when an unknown event is received. +type SelectObjectContentEventStreamUnknownEvent struct { + Type string + Message eventstream.Message +} + +// The SelectObjectContentEventStreamUnknownEvent is and event in the SelectObjectContentEventStream +// group of events. +func (s *SelectObjectContentEventStreamUnknownEvent) eventSelectObjectContentEventStream() {} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (e *SelectObjectContentEventStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( + msg eventstream.Message, err error, +) { + return e.Message.Clone(), nil +} + +// UnmarshalEvent unmarshals the EventStream Message into the SelectObjectContentEventStreamData value. +// This method is only used internally within the SDK's EventStream handling. +func (e *SelectObjectContentEventStreamUnknownEvent) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + e.Message = msg.Clone() + return nil +} + // Request to filter the contents of an Amazon S3 object based on a simple Structured // Query Language (SQL) statement. In the request, along with the SQL expression, // you must specify a data serialization format (JSON or CSV) of the object. @@ -28623,8 +28732,24 @@ func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *Selec type ServerSideEncryptionByDefault struct { _ struct{} `type:"structure"` - // KMS master key ID to use for the default encryption. This parameter is allowed - // if and only if SSEAlgorithm is set to aws:kms. + // AWS Key Management Service (KMS) customer master key ID to use for the default + // encryption. This parameter is allowed if and only if SSEAlgorithm is set + // to aws:kms. + // + // You can specify the key ID or the Amazon Resource Name (ARN) of the CMK. + // However, if you are using encryption with cross-account operations, you must + // use a fully qualified CMK ARN. For more information, see Using encryption + // for cross-account operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). + // + // For example: + // + // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // + // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // + // Amazon S3 only supports symmetric CMKs and not asymmetric CMKs. For more + // information, see Using Symmetric and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + // in the AWS Key Management Service Developer Guide. KMSMasterKeyID *string `type:"string" sensitive:"true"` // Server-side encryption algorithm to use for the default encryption. @@ -28928,6 +29053,8 @@ func (s *StatsEvent) UnmarshalEvent( return nil } +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. func (s *StatsEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) var buf bytes.Buffer @@ -29043,7 +29170,7 @@ func (s *StorageClassAnalysisDataExport) SetOutputSchemaVersion(v string) *Stora type Tag struct { _ struct{} `type:"structure"` - // Name of the tag. + // Name of the object key. // // Key is a required field Key *string `min:"1" type:"string" required:"true"` @@ -29274,6 +29401,7 @@ func (s *TopicConfiguration) SetTopicArn(v string) *TopicConfiguration { // A container for specifying the configuration for publication of messages // to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 // detects specified events. This data type is deprecated. Use TopicConfiguration +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_TopicConfiguration.html) // instead. type TopicConfigurationDeprecated struct { _ struct{} `type:"structure"` @@ -29329,7 +29457,10 @@ func (s *TopicConfigurationDeprecated) SetTopic(v string) *TopicConfigurationDep return s } -// Specifies when an object transitions to a specified storage class. +// Specifies when an object transitions to a specified storage class. For more +// information about Amazon S3 lifecycle configuration rules, see Transitioning +// Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) +// in the Amazon Simple Storage Service Developer Guide. type Transition struct { _ struct{} `type:"structure"` @@ -29446,7 +29577,7 @@ type UploadPartCopyInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -29771,7 +29902,7 @@ type UploadPartInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/body_hash.go b/vendor/github.com/aws/aws-sdk-go/service/s3/body_hash.go index 5c8ce5cc8..407f06b6e 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/body_hash.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/body_hash.go @@ -13,7 +13,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkio" ) const ( @@ -25,30 +24,6 @@ const ( appendMD5TxEncoding = "append-md5" ) -// contentMD5 computes and sets the HTTP Content-MD5 header for requests that -// require it. -func contentMD5(r *request.Request) { - h := md5.New() - - if !aws.IsReaderSeekable(r.Body) { - if r.Config.Logger != nil { - r.Config.Logger.Log(fmt.Sprintf( - "Unable to compute Content-MD5 for unseekable body, S3.%s", - r.Operation.Name)) - } - return - } - - if _, err := copySeekableBody(h, r.Body); err != nil { - r.Error = awserr.New("ContentMD5", "failed to compute body MD5", err) - return - } - - // encode the md5 checksum in base64 and set the request header. - v := base64.StdEncoding.EncodeToString(h.Sum(nil)) - r.HTTPRequest.Header.Set(contentMD5Header, v) -} - // computeBodyHashes will add Content MD5 and Content Sha256 hashes to the // request. If the body is not seekable or S3DisableContentMD5Validation set // this handler will be ignored. @@ -90,7 +65,7 @@ func computeBodyHashes(r *request.Request) { dst = io.MultiWriter(hashers...) } - if _, err := copySeekableBody(dst, r.Body); err != nil { + if _, err := aws.CopySeekableBody(dst, r.Body); err != nil { r.Error = awserr.New("BodyHashError", "failed to compute body hashes", err) return } @@ -119,28 +94,6 @@ const ( sha256HexEncLen = sha256.Size * 2 // hex.EncodedLen ) -func copySeekableBody(dst io.Writer, src io.ReadSeeker) (int64, error) { - curPos, err := src.Seek(0, sdkio.SeekCurrent) - if err != nil { - return 0, err - } - - // hash the body. seek back to the first position after reading to reset - // the body for transmission. copy errors may be assumed to be from the - // body. - n, err := io.Copy(dst, src) - if err != nil { - return n, err - } - - _, err = src.Seek(curPos, sdkio.SeekStart) - if err != nil { - return n, err - } - - return n, nil -} - // Adds the x-amz-te: append_md5 header to the request. This requests the service // responds with a trailing MD5 checksum. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go index 036d0b2e0..a7698d5eb 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go @@ -33,12 +33,6 @@ func defaultInitRequestFn(r *request.Request) { platformRequestHandlers(r) switch r.Operation.Name { - case opPutBucketCors, opPutBucketLifecycle, opPutBucketPolicy, - opPutBucketTagging, opDeleteObjects, opPutBucketLifecycleConfiguration, - opPutObjectLegalHold, opPutObjectRetention, opPutObjectLockConfiguration, - opPutBucketReplication: - // These S3 operations require Content-MD5 to be set - r.Handlers.Build.PushBack(contentMD5) case opGetBucketLocation: // GetBucketLocation has custom parsing logic r.Handlers.Unmarshal.PushFront(buildGetBucketLocation) diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/doc_custom.go b/vendor/github.com/aws/aws-sdk-go/service/s3/doc_custom.go index 4b65f7153..7f7aca208 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/doc_custom.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/doc_custom.go @@ -104,19 +104,6 @@ // content from S3. The Encryption and Decryption clients can be used concurrently // once the client is created. // -// sess := session.Must(session.NewSession()) -// -// // Create the decryption client. -// svc := s3crypto.NewDecryptionClient(sess) -// -// // The object will be downloaded from S3 and decrypted locally. By metadata -// // about the object's encryption will instruct the decryption client how -// // decrypt the content of the object. By default KMS is used for keys. -// result, err := svc.GetObject(&s3.GetObjectInput { -// Bucket: aws.String(myBucket), -// Key: aws.String(myKey), -// }) -// // See the s3crypto package documentation for more information. // https://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3crypto/ // diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/bucket_region.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/bucket_region.go index f61665a58..9cc1e5970 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/bucket_region.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/bucket_region.go @@ -3,6 +3,7 @@ package s3manager import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/corehandlers" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/s3" @@ -35,6 +36,30 @@ import ( // } // fmt.Printf("Bucket %s is in %s region\n", bucket, region) // +// By default the request will be made to the Amazon S3 endpoint using the Path +// style addressing. +// +// s3.us-west-2.amazonaws.com/bucketname +// +// This is not compatible with Amazon S3's FIPS endpoints. To override this +// behavior to use Virtual Host style addressing, provide a functional option +// that will set the Request's Config.S3ForcePathStyle to aws.Bool(false). +// +// region, err := s3manager.GetBucketRegion(ctx, sess, "bucketname", "us-west-2", func(r *request.Request) { +// r.S3ForcePathStyle = aws.Bool(false) +// }) +// +// To configure the GetBucketRegion to make a request via the Amazon +// S3 FIPS endpoints directly when a FIPS region name is not available, (e.g. +// fips-us-gov-west-1) set the Config.Endpoint on the Session, or client the +// utility is called with. The hint region will be ignored if an endpoint URL +// is configured on the session or client. +// +// sess, err := session.NewSession(&aws.Config{ +// Endpoint: aws.String("https://s3-fips.us-west-2.amazonaws.com"), +// }) +// +// region, err := s3manager.GetBucketRegion(context.Background(), sess, "bucketname", "") func GetBucketRegion(ctx aws.Context, c client.ConfigProvider, bucket, regionHint string, opts ...request.Option) (string, error) { var cfg aws.Config if len(regionHint) != 0 { @@ -50,12 +75,38 @@ const bucketRegionHeader = "X-Amz-Bucket-Region" // that it takes a S3 service client instead of a Session. The regionHint is // derived from the region the S3 service client was created in. // +// By default the request will be made to the Amazon S3 endpoint using the Path +// style addressing. +// +// s3.us-west-2.amazonaws.com/bucketname +// +// This is not compatible with Amazon S3's FIPS endpoints. To override this +// behavior to use Virtual Host style addressing, provide a functional option +// that will set the Request's Config.S3ForcePathStyle to aws.Bool(false). +// +// region, err := s3manager.GetBucketRegionWithClient(ctx, client, "bucketname", func(r *request.Request) { +// r.S3ForcePathStyle = aws.Bool(false) +// }) +// +// To configure the GetBucketRegion to make a request via the Amazon +// S3 FIPS endpoints directly when a FIPS region name is not available, (e.g. +// fips-us-gov-west-1) set the Config.Endpoint on the Session, or client the +// utility is called with. The hint region will be ignored if an endpoint URL +// is configured on the session or client. +// +// region, err := s3manager.GetBucketRegionWithClient(context.Background(), +// s3.New(sess, &aws.Config{ +// Endpoint: aws.String("https://s3-fips.us-west-2.amazonaws.com"), +// }), +// "bucketname") +// // See GetBucketRegion for more information. func GetBucketRegionWithClient(ctx aws.Context, svc s3iface.S3API, bucket string, opts ...request.Option) (string, error) { req, _ := svc.HeadBucketRequest(&s3.HeadBucketInput{ Bucket: aws.String(bucket), }) req.Config.S3ForcePathStyle = aws.Bool(true) + req.Config.Credentials = credentials.AnonymousCredentials req.SetContext(ctx) @@ -75,6 +126,16 @@ func GetBucketRegionWithClient(ctx aws.Context, svc s3iface.S3API, bucket string r.HTTPResponse.Status = "OK" r.Error = nil }) + // Replace the endpoint validation handler to not require a region if an + // endpoint URL was specified. Since these requests are not authenticated, + // requiring a region is not needed when an endpoint URL is provided. + req.Handlers.Validate.Swap( + corehandlers.ValidateEndpointHandler.Name, + request.NamedHandler{ + Name: "validateEndpointWithoutRegion", + Fn: validateEndpointWithoutRegion, + }, + ) req.ApplyOptions(opts...) @@ -86,3 +147,13 @@ func GetBucketRegionWithClient(ctx aws.Context, svc s3iface.S3API, bucket string return bucketRegion, nil } + +func validateEndpointWithoutRegion(r *request.Request) { + // Check if the caller provided an explicit URL instead of one derived by + // the SDK's endpoint resolver. For GetBucketRegion, with an explicit + // endpoint URL, a region is not needed. If no endpoint URL is provided, + // fallback the SDK's standard endpoint validation handler. + if len(aws.StringValue(r.Config.Endpoint)) == 0 { + corehandlers.ValidateEndpointHandler.Fn(r) + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/pool.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/pool.go new file mode 100644 index 000000000..05113286d --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/pool.go @@ -0,0 +1,244 @@ +package s3manager + +import ( + "fmt" + "sync" + + "github.com/aws/aws-sdk-go/aws" +) + +type byteSlicePool interface { + Get(aws.Context) (*[]byte, error) + Put(*[]byte) + ModifyCapacity(int) + SliceSize() int64 + Close() +} + +type maxSlicePool struct { + // allocator is defined as a function pointer to allow + // for test cases to instrument custom tracers when allocations + // occur. + allocator sliceAllocator + + slices chan *[]byte + allocations chan struct{} + capacityChange chan struct{} + + max int + sliceSize int64 + + mtx sync.RWMutex +} + +func newMaxSlicePool(sliceSize int64) *maxSlicePool { + p := &maxSlicePool{sliceSize: sliceSize} + p.allocator = p.newSlice + + return p +} + +var errZeroCapacity = fmt.Errorf("get called on zero capacity pool") + +func (p *maxSlicePool) Get(ctx aws.Context) (*[]byte, error) { + // check if context is canceled before attempting to get a slice + // this ensures priority is given to the cancel case first + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + p.mtx.RLock() + + for { + select { + case bs, ok := <-p.slices: + p.mtx.RUnlock() + if !ok { + // attempt to get on a zero capacity pool + return nil, errZeroCapacity + } + return bs, nil + case _, ok := <-p.allocations: + p.mtx.RUnlock() + if !ok { + // attempt to get on a zero capacity pool + return nil, errZeroCapacity + } + return p.allocator(), nil + case <-ctx.Done(): + p.mtx.RUnlock() + return nil, ctx.Err() + default: + // In the event that there are no slices or allocations available + // This prevents some deadlock situations that can occur around sync.RWMutex + // When a lock request occurs on ModifyCapacity, no new readers are allowed to acquire a read lock. + // By releasing the read lock here and waiting for a notification, we prevent a deadlock situation where + // Get could hold the read lock indefinitely waiting for capacity, ModifyCapacity is waiting for a write lock, + // and a Put is blocked trying to get a read-lock which is blocked by ModifyCapacity. + + // Short-circuit if the pool capacity is zero. + if p.max == 0 { + p.mtx.RUnlock() + return nil, errZeroCapacity + } + + // Since we will be releasing the read-lock we need to take the reference to the channel. + // Since channels are references we will still get notified if slices are added, or if + // the channel is closed due to a capacity modification. This specifically avoids a data race condition + // where ModifyCapacity both closes a channel and initializes a new one while we don't have a read-lock. + c := p.capacityChange + + p.mtx.RUnlock() + + select { + case _ = <-c: + p.mtx.RLock() + case <-ctx.Done(): + return nil, ctx.Err() + } + } + } +} + +func (p *maxSlicePool) Put(bs *[]byte) { + p.mtx.RLock() + defer p.mtx.RUnlock() + + if p.max == 0 { + return + } + + select { + case p.slices <- bs: + p.notifyCapacity() + default: + // If the new channel when attempting to add the slice then we drop the slice. + // The logic here is to prevent a deadlock situation if channel is already at max capacity. + // Allows us to reap allocations that are returned and are no longer needed. + } +} + +func (p *maxSlicePool) ModifyCapacity(delta int) { + if delta == 0 { + return + } + + p.mtx.Lock() + defer p.mtx.Unlock() + + p.max += delta + + if p.max == 0 { + p.empty() + return + } + + if p.capacityChange != nil { + close(p.capacityChange) + } + p.capacityChange = make(chan struct{}, p.max) + + origAllocations := p.allocations + p.allocations = make(chan struct{}, p.max) + + newAllocs := len(origAllocations) + delta + for i := 0; i < newAllocs; i++ { + p.allocations <- struct{}{} + } + + if origAllocations != nil { + close(origAllocations) + } + + origSlices := p.slices + p.slices = make(chan *[]byte, p.max) + if origSlices == nil { + return + } + + close(origSlices) + for bs := range origSlices { + select { + case p.slices <- bs: + default: + // If the new channel blocks while adding slices from the old channel + // then we drop the slice. The logic here is to prevent a deadlock situation + // if the new channel has a smaller capacity then the old. + } + } +} + +func (p *maxSlicePool) notifyCapacity() { + select { + case p.capacityChange <- struct{}{}: + default: + // This *shouldn't* happen as the channel is both buffered to the max pool capacity size and is resized + // on capacity modifications. This is just a safety to ensure that a blocking situation can't occur. + } +} + +func (p *maxSlicePool) SliceSize() int64 { + return p.sliceSize +} + +func (p *maxSlicePool) Close() { + p.mtx.Lock() + defer p.mtx.Unlock() + p.empty() +} + +func (p *maxSlicePool) empty() { + p.max = 0 + + if p.capacityChange != nil { + close(p.capacityChange) + p.capacityChange = nil + } + + if p.allocations != nil { + close(p.allocations) + for range p.allocations { + // drain channel + } + p.allocations = nil + } + + if p.slices != nil { + close(p.slices) + for range p.slices { + // drain channel + } + p.slices = nil + } +} + +func (p *maxSlicePool) newSlice() *[]byte { + bs := make([]byte, p.sliceSize) + return &bs +} + +type returnCapacityPoolCloser struct { + byteSlicePool + returnCapacity int +} + +func (n *returnCapacityPoolCloser) ModifyCapacity(delta int) { + if delta > 0 { + n.returnCapacity = -1 * delta + } + n.byteSlicePool.ModifyCapacity(delta) +} + +func (n *returnCapacityPoolCloser) Close() { + if n.returnCapacity < 0 { + n.byteSlicePool.ModifyCapacity(n.returnCapacity) + } +} + +type sliceAllocator func() *[]byte + +var newByteSlicePool = func(sliceSize int64) byteSlicePool { + return newMaxSlicePool(sliceSize) +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go index 201b3e327..8770d4041 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go @@ -366,6 +366,7 @@ func (u *uploader) upload() (*UploadOutput, error) { if err := u.init(); err != nil { return nil, awserr.New("ReadRequestBody", "unable to initialize upload", err) } + defer u.cfg.partPool.Close() if u.cfg.PartSize < MinUploadPartSize { msg := fmt.Sprintf("part size must be at least %d bytes", MinUploadPartSize) @@ -404,8 +405,13 @@ func (u *uploader) init() error { // If PartSize was changed or partPool was never setup then we need to allocated a new pool // so that we return []byte slices of the correct size - if u.cfg.partPool == nil || u.cfg.partPool.Size() != u.cfg.PartSize { + poolCap := u.cfg.Concurrency + 1 + if u.cfg.partPool == nil || u.cfg.partPool.SliceSize() != u.cfg.PartSize { u.cfg.partPool = newByteSlicePool(u.cfg.PartSize) + u.cfg.partPool.ModifyCapacity(poolCap) + } else { + u.cfg.partPool = &returnCapacityPoolCloser{byteSlicePool: u.cfg.partPool} + u.cfg.partPool.ModifyCapacity(poolCap) } return nil @@ -441,10 +447,6 @@ func (u *uploader) initSize() error { // does not need to be wrapped in a mutex because nextReader is only called // from the main thread. func (u *uploader) nextReader() (io.ReadSeeker, int, func(), error) { - type readerAtSeeker interface { - io.ReaderAt - io.ReadSeeker - } switch r := u.in.Body.(type) { case readerAtSeeker: var err error @@ -476,15 +478,19 @@ func (u *uploader) nextReader() (io.ReadSeeker, int, func(), error) { return reader, int(n), cleanup, err default: - part := u.cfg.partPool.Get() - n, err := readFillBuf(r, part) + part, err := u.cfg.partPool.Get(u.ctx) + if err != nil { + return nil, 0, func() {}, err + } + + n, err := readFillBuf(r, *part) u.readerPos += int64(n) cleanup := func() { u.cfg.partPool.Put(part) } - return bytes.NewReader(part[0:n]), n, cleanup, err + return bytes.NewReader((*part)[0:n]), n, cleanup, err } } @@ -619,6 +625,7 @@ func (u *multiuploader) upload(firstBuf io.ReadSeeker, cleanup func()) (*UploadO Key: u.in.Key, }) getReq.Config.Credentials = credentials.AnonymousCredentials + getReq.SetContext(u.ctx) uploadLocation, _, _ := getReq.PresignRequest(1) return &UploadOutput{ @@ -673,6 +680,8 @@ func (u *multiuploader) readChunk(ch chan chunk) { u.seterr(err) } } + + data.cleanup() } } @@ -690,7 +699,6 @@ func (u *multiuploader) send(c chunk) error { } resp, err := u.cfg.S3.UploadPartWithContext(u.ctx, params, u.cfg.RequestOptions...) - c.cleanup() if err != nil { return err } @@ -763,39 +771,7 @@ func (u *multiuploader) complete() *s3.CompleteMultipartUploadOutput { return resp } -type byteSlicePool interface { - Get() []byte - Put([]byte) - Size() int64 -} - -type partPool struct { - partSize int64 - sync.Pool -} - -func (p *partPool) Get() []byte { - return p.Pool.Get().([]byte) -} - -func (p *partPool) Put(b []byte) { - p.Pool.Put(b) -} - -func (p *partPool) Size() int64 { - return p.partSize -} - -func newPartPool(partSize int64) *partPool { - p := &partPool{partSize: partSize} - - p.New = func() interface{} { - return make([]byte, p.partSize) - } - - return p -} - -var newByteSlicePool = func(partSize int64) byteSlicePool { - return newPartPool(partSize) +type readerAtSeeker interface { + io.ReaderAt + io.ReadSeeker } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go index 9a5b46388..e1e609d0e 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go @@ -111,7 +111,7 @@ type UploadInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting // data. This value is used to store the object and then it is discarded; Amazon // S3 does not store the encryption key. The key must be appropriate for use - // with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm + // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` @@ -141,8 +141,8 @@ type UploadInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // If you don't specify, Standard is the default storage class. Amazon S3 supports - // other storage classes. + // If you don't specify, S3 Standard is the default storage class. Amazon S3 + // supports other storage classes. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go index f6a69aed1..247770e4c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go @@ -2,6 +2,7 @@ package s3 import ( "bytes" + "io" "io/ioutil" "net/http" @@ -24,17 +25,18 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) { r.HTTPResponse.Body = ioutil.NopCloser(body) defer body.Seek(0, sdkio.SeekStart) - if body.Len() == 0 { - // If there is no body don't attempt to parse the body. - return - } - unmarshalError(r) if err, ok := r.Error.(awserr.Error); ok && err != nil { - if err.Code() == request.ErrCodeSerialization { + if err.Code() == request.ErrCodeSerialization && + err.OrigErr() != io.EOF { r.Error = nil return } - r.HTTPResponse.StatusCode = http.StatusServiceUnavailable + // if empty payload + if err.OrigErr() == io.EOF { + r.HTTPResponse.StatusCode = http.StatusInternalServerError + } else { + r.HTTPResponse.StatusCode = http.StatusServiceUnavailable + } } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go index 5b63fac72..6eecf6691 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go @@ -1,6 +1,7 @@ package s3 import ( + "bytes" "encoding/xml" "fmt" "io" @@ -45,17 +46,24 @@ func unmarshalError(r *request.Request) { // Attempt to parse error from body if it is known var errResp xmlErrorResponse - err := xmlutil.UnmarshalXMLError(&errResp, r.HTTPResponse.Body) - if err == io.EOF { - // Only capture the error if an unmarshal error occurs that is not EOF, - // because S3 might send an error without a error message which causes - // the XML unmarshal to fail with EOF. - err = nil + var err error + if r.HTTPResponse.StatusCode >= 200 && r.HTTPResponse.StatusCode < 300 { + err = s3unmarshalXMLError(&errResp, r.HTTPResponse.Body) + } else { + err = xmlutil.UnmarshalXMLError(&errResp, r.HTTPResponse.Body) } + if err != nil { + var errorMsg string + if err == io.EOF { + errorMsg = "empty response payload" + } else { + errorMsg = "failed to unmarshal error message" + } + r.Error = awserr.NewRequestFailure( awserr.New(request.ErrCodeSerialization, - "failed to unmarshal error message", err), + errorMsg, err), r.HTTPResponse.StatusCode, r.RequestID, ) @@ -86,3 +94,21 @@ type RequestFailure interface { // Host ID is the S3 Host ID needed for debug, and contacting support HostID() string } + +// s3unmarshalXMLError is s3 specific xml error unmarshaler +// for 200 OK errors and response payloads. +// This function differs from the xmlUtil.UnmarshalXMLError +// func. It does not ignore the EOF error and passes it up. +// Related to bug fix for `s3 200 OK response with empty payload` +func s3unmarshalXMLError(v interface{}, stream io.Reader) error { + var errBuf bytes.Buffer + body := io.TeeReader(stream, &errBuf) + + err := xml.NewDecoder(body).Decode(v) + if err != nil && err != io.EOF { + return awserr.NewUnmarshalError(err, + "failed to unmarshal error message", errBuf.Bytes()) + } + + return err +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go index 7f60d4aa1..550b5f687 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go @@ -1788,7 +1788,7 @@ type AssumeRoleWithSAMLInput struct { // in the IAM User Guide. // // SAMLAssertion is a required field - SAMLAssertion *string `min:"4" type:"string" required:"true"` + SAMLAssertion *string `min:"4" type:"string" required:"true" sensitive:"true"` } // String returns the string representation @@ -2100,7 +2100,7 @@ type AssumeRoleWithWebIdentityInput struct { // the application makes an AssumeRoleWithWebIdentity call. // // WebIdentityToken is a required field - WebIdentityToken *string `min:"4" type:"string" required:"true"` + WebIdentityToken *string `min:"4" type:"string" required:"true" sensitive:"true"` } // String returns the string representation diff --git a/vendor/github.com/jmespath/go-jmespath/.travis.yml b/vendor/github.com/jmespath/go-jmespath/.travis.yml index 1f9807757..730c7fa51 100644 --- a/vendor/github.com/jmespath/go-jmespath/.travis.yml +++ b/vendor/github.com/jmespath/go-jmespath/.travis.yml @@ -3,7 +3,15 @@ language: go sudo: false go: - - 1.4 + - 1.5.x + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - 1.10.x + - 1.11.x + - 1.12.x + - 1.13.x install: go get -v -t ./... script: make test diff --git a/vendor/github.com/jmespath/go-jmespath/README.md b/vendor/github.com/jmespath/go-jmespath/README.md index 187ef676d..110ad7999 100644 --- a/vendor/github.com/jmespath/go-jmespath/README.md +++ b/vendor/github.com/jmespath/go-jmespath/README.md @@ -4,4 +4,84 @@ -See http://jmespath.org for more info. +go-jmespath is a GO implementation of JMESPath, +which is a query language for JSON. It will take a JSON +document and transform it into another JSON document +through a JMESPath expression. + +Using go-jmespath is really easy. There's a single function +you use, `jmespath.search`: + + +```go +> import "github.com/jmespath/go-jmespath" +> +> var jsondata = []byte(`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}`) // your data +> var data interface{} +> err := json.Unmarshal(jsondata, &data) +> result, err := jmespath.Search("foo.bar.baz[2]", data) +result = 2 +``` + +In the example we gave the ``search`` function input data of +`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}` as well as the JMESPath +expression `foo.bar.baz[2]`, and the `search` function evaluated +the expression against the input data to produce the result ``2``. + +The JMESPath language can do a lot more than select an element +from a list. Here are a few more examples: + +```go +> var jsondata = []byte(`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}`) // your data +> var data interface{} +> err := json.Unmarshal(jsondata, &data) +> result, err := jmespath.search("foo.bar", data) +result = { "baz": [ 0, 1, 2, 3, 4 ] } + + +> var jsondata = []byte(`{"foo": [{"first": "a", "last": "b"}, + {"first": "c", "last": "d"}]}`) // your data +> var data interface{} +> err := json.Unmarshal(jsondata, &data) +> result, err := jmespath.search({"foo[*].first", data) +result [ 'a', 'c' ] + + +> var jsondata = []byte(`{"foo": [{"age": 20}, {"age": 25}, + {"age": 30}, {"age": 35}, + {"age": 40}]}`) // your data +> var data interface{} +> err := json.Unmarshal(jsondata, &data) +> result, err := jmespath.search("foo[?age > `30`]") +result = [ { age: 35 }, { age: 40 } ] +``` + +You can also pre-compile your query. This is usefull if +you are going to run multiple searches with it: + +```go + > var jsondata = []byte(`{"foo": "bar"}`) + > var data interface{} + > err := json.Unmarshal(jsondata, &data) + > precompiled, err := Compile("foo") + > if err != nil{ + > // ... handle the error + > } + > result, err := precompiled.Search(data) + result = "bar" +``` + +## More Resources + +The example above only show a small amount of what +a JMESPath expression can do. If you want to take a +tour of the language, the *best* place to go is the +[JMESPath Tutorial](http://jmespath.org/tutorial.html). + +One of the best things about JMESPath is that it is +implemented in many different programming languages including +python, ruby, php, lua, etc. To see a complete list of libraries, +check out the [JMESPath libraries page](http://jmespath.org/libraries.html). + +And finally, the full JMESPath specification can be found +on the [JMESPath site](http://jmespath.org/specification.html). diff --git a/vendor/github.com/jmespath/go-jmespath/api.go b/vendor/github.com/jmespath/go-jmespath/api.go index 8e26ffeec..010efe9bf 100644 --- a/vendor/github.com/jmespath/go-jmespath/api.go +++ b/vendor/github.com/jmespath/go-jmespath/api.go @@ -2,7 +2,7 @@ package jmespath import "strconv" -// JMESPath is the epresentation of a compiled JMES path query. A JMESPath is +// JMESPath is the representation of a compiled JMES path query. A JMESPath is // safe for concurrent use by multiple goroutines. type JMESPath struct { ast ASTNode diff --git a/vendor/github.com/jmespath/go-jmespath/go.mod b/vendor/github.com/jmespath/go-jmespath/go.mod new file mode 100644 index 000000000..aa1e3f1c9 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/go.mod @@ -0,0 +1,5 @@ +module github.com/jmespath/go-jmespath + +go 1.14 + +require github.com/stretchr/testify v1.5.1 diff --git a/vendor/github.com/jmespath/go-jmespath/go.sum b/vendor/github.com/jmespath/go-jmespath/go.sum new file mode 100644 index 000000000..331fa6982 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/go.sum @@ -0,0 +1,11 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/jmespath/go-jmespath/parser.go b/vendor/github.com/jmespath/go-jmespath/parser.go index 1240a1755..4abc303ab 100644 --- a/vendor/github.com/jmespath/go-jmespath/parser.go +++ b/vendor/github.com/jmespath/go-jmespath/parser.go @@ -137,7 +137,7 @@ func (p *Parser) Parse(expression string) (ASTNode, error) { } if p.current() != tEOF { return ASTNode{}, p.syntaxError(fmt.Sprintf( - "Unexpected token at the end of the expresssion: %s", p.current())) + "Unexpected token at the end of the expression: %s", p.current())) } return parsed, nil } diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml index d4b92663b..9159de03e 100644 --- a/vendor/github.com/pkg/errors/.travis.yml +++ b/vendor/github.com/pkg/errors/.travis.yml @@ -1,15 +1,10 @@ language: go go_import_path: github.com/pkg/errors go: - - 1.4.x - - 1.5.x - - 1.6.x - - 1.7.x - - 1.8.x - - 1.9.x - - 1.10.x - 1.11.x + - 1.12.x + - 1.13.x - tip script: - - go test -v ./... + - make check diff --git a/vendor/github.com/pkg/errors/Makefile b/vendor/github.com/pkg/errors/Makefile new file mode 100644 index 000000000..ce9d7cded --- /dev/null +++ b/vendor/github.com/pkg/errors/Makefile @@ -0,0 +1,44 @@ +PKGS := github.com/pkg/errors +SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS)) +GO := go + +check: test vet gofmt misspell unconvert staticcheck ineffassign unparam + +test: + $(GO) test $(PKGS) + +vet: | test + $(GO) vet $(PKGS) + +staticcheck: + $(GO) get honnef.co/go/tools/cmd/staticcheck + staticcheck -checks all $(PKGS) + +misspell: + $(GO) get github.com/client9/misspell/cmd/misspell + misspell \ + -locale GB \ + -error \ + *.md *.go + +unconvert: + $(GO) get github.com/mdempsky/unconvert + unconvert -v $(PKGS) + +ineffassign: + $(GO) get github.com/gordonklaus/ineffassign + find $(SRCDIRS) -name '*.go' | xargs ineffassign + +pedantic: check errcheck + +unparam: + $(GO) get mvdan.cc/unparam + unparam ./... + +errcheck: + $(GO) get github.com/kisielk/errcheck + errcheck $(PKGS) + +gofmt: + @echo Checking code is gofmted + @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)" diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md index 6483ba2af..54dfdcb12 100644 --- a/vendor/github.com/pkg/errors/README.md +++ b/vendor/github.com/pkg/errors/README.md @@ -41,11 +41,18 @@ default: [Read the package documentation for more information](https://godoc.org/github.com/pkg/errors). +## Roadmap + +With the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows: + +- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible) +- 1.0. Final release. + ## Contributing -We welcome pull requests, bug fixes and issue reports. With that said, the bar for adding new symbols to this package is intentionally set high. +Because of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. -Before proposing a change, please discuss your change by raising an issue. +Before sending a PR, please discuss your change by raising an issue. ## License diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go index 7421f326f..161aea258 100644 --- a/vendor/github.com/pkg/errors/errors.go +++ b/vendor/github.com/pkg/errors/errors.go @@ -82,7 +82,7 @@ // // if err, ok := err.(stackTracer); ok { // for _, f := range err.StackTrace() { -// fmt.Printf("%+s:%d", f) +// fmt.Printf("%+s:%d\n", f, f) // } // } // @@ -159,6 +159,9 @@ type withStack struct { func (w *withStack) Cause() error { return w.error } +// Unwrap provides compatibility for Go 1.13 error chains. +func (w *withStack) Unwrap() error { return w.error } + func (w *withStack) Format(s fmt.State, verb rune) { switch verb { case 'v': @@ -241,6 +244,9 @@ type withMessage struct { func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } func (w *withMessage) Cause() error { return w.cause } +// Unwrap provides compatibility for Go 1.13 error chains. +func (w *withMessage) Unwrap() error { return w.cause } + func (w *withMessage) Format(s fmt.State, verb rune) { switch verb { case 'v': diff --git a/vendor/github.com/pkg/errors/go113.go b/vendor/github.com/pkg/errors/go113.go new file mode 100644 index 000000000..be0d10d0c --- /dev/null +++ b/vendor/github.com/pkg/errors/go113.go @@ -0,0 +1,38 @@ +// +build go1.13 + +package errors + +import ( + stderrors "errors" +) + +// Is reports whether any error in err's chain matches target. +// +// The chain consists of err itself followed by the sequence of errors obtained by +// repeatedly calling Unwrap. +// +// An error is considered to match a target if it is equal to that target or if +// it implements a method Is(error) bool such that Is(target) returns true. +func Is(err, target error) bool { return stderrors.Is(err, target) } + +// As finds the first error in err's chain that matches target, and if so, sets +// target to that error value and returns true. +// +// The chain consists of err itself followed by the sequence of errors obtained by +// repeatedly calling Unwrap. +// +// An error matches target if the error's concrete value is assignable to the value +// pointed to by target, or if the error has a method As(interface{}) bool such that +// As(target) returns true. In the latter case, the As method is responsible for +// setting target. +// +// As will panic if target is not a non-nil pointer to either a type that implements +// error, or to any interface type. As returns false if err is nil. +func As(err error, target interface{}) bool { return stderrors.As(err, target) } + +// Unwrap returns the result of calling the Unwrap method on err, if err's +// type contains an Unwrap method returning error. +// Otherwise, Unwrap returns nil. +func Unwrap(err error) error { + return stderrors.Unwrap(err) +} diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go index 2874a048c..779a8348f 100644 --- a/vendor/github.com/pkg/errors/stack.go +++ b/vendor/github.com/pkg/errors/stack.go @@ -5,10 +5,13 @@ import ( "io" "path" "runtime" + "strconv" "strings" ) // Frame represents a program counter inside a stack frame. +// For historical reasons if Frame is interpreted as a uintptr +// its value represents the program counter + 1. type Frame uintptr // pc returns the program counter for this frame; @@ -37,6 +40,15 @@ func (f Frame) line() int { return line } +// name returns the name of this function, if known. +func (f Frame) name() string { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return "unknown" + } + return fn.Name() +} + // Format formats the frame according to the fmt.Formatter interface. // // %s source file @@ -54,22 +66,16 @@ func (f Frame) Format(s fmt.State, verb rune) { case 's': switch { case s.Flag('+'): - pc := f.pc() - fn := runtime.FuncForPC(pc) - if fn == nil { - io.WriteString(s, "unknown") - } else { - file, _ := fn.FileLine(pc) - fmt.Fprintf(s, "%s\n\t%s", fn.Name(), file) - } + io.WriteString(s, f.name()) + io.WriteString(s, "\n\t") + io.WriteString(s, f.file()) default: io.WriteString(s, path.Base(f.file())) } case 'd': - fmt.Fprintf(s, "%d", f.line()) + io.WriteString(s, strconv.Itoa(f.line())) case 'n': - name := runtime.FuncForPC(f.pc()).Name() - io.WriteString(s, funcname(name)) + io.WriteString(s, funcname(f.name())) case 'v': f.Format(s, 's') io.WriteString(s, ":") @@ -77,6 +83,16 @@ func (f Frame) Format(s fmt.State, verb rune) { } } +// MarshalText formats a stacktrace Frame as a text string. The output is the +// same as that of fmt.Sprintf("%+v", f), but without newlines or tabs. +func (f Frame) MarshalText() ([]byte, error) { + name := f.name() + if name == "unknown" { + return []byte(name), nil + } + return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil +} + // StackTrace is stack of Frames from innermost (newest) to outermost (oldest). type StackTrace []Frame @@ -94,16 +110,30 @@ func (st StackTrace) Format(s fmt.State, verb rune) { switch { case s.Flag('+'): for _, f := range st { - fmt.Fprintf(s, "\n%+v", f) + io.WriteString(s, "\n") + f.Format(s, verb) } case s.Flag('#'): fmt.Fprintf(s, "%#v", []Frame(st)) default: - fmt.Fprintf(s, "%v", []Frame(st)) + st.formatSlice(s, verb) } case 's': - fmt.Fprintf(s, "%s", []Frame(st)) + st.formatSlice(s, verb) + } +} + +// formatSlice will format this StackTrace into the given buffer as a slice of +// Frame, only valid when called with '%s' or '%v'. +func (st StackTrace) formatSlice(s fmt.State, verb rune) { + io.WriteString(s, "[") + for i, f := range st { + if i > 0 { + io.WriteString(s, " ") + } + f.Format(s, verb) } + io.WriteString(s, "]") } // stack represents a stack of program counters. diff --git a/vendor/golang.org/x/net/idna/tables11.0.0.go b/vendor/golang.org/x/net/idna/tables11.0.0.go index c515d7ad2..8ce0811fd 100644 --- a/vendor/golang.org/x/net/idna/tables11.0.0.go +++ b/vendor/golang.org/x/net/idna/tables11.0.0.go @@ -1,6 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -// +build go1.13 +// +build go1.13,!go1.14 package idna diff --git a/vendor/golang.org/x/net/idna/tables12.00.go b/vendor/golang.org/x/net/idna/tables12.00.go new file mode 100644 index 000000000..f4b8ea363 --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables12.00.go @@ -0,0 +1,4733 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.14 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "12.0.0" + +var mappings string = "" + // Size: 8178 bytes + "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" + + "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + + "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" + + "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + + "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + + "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + + "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" + + "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" + + "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" + + "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" + + "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" + + "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" + + "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + + "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + + "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + + "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" + + "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + + "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + + "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" + + "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" + + "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" + + "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + + "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + + "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + + "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" + + "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" + + ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" + + "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + + "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" + + "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" + + "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" + + "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + + "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" + + "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + + "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + + "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" + + "インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" + + "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" + + "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル\x0fサンチ" + + "ーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ハイツ" + + "\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" + + "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cポイ" + + "ント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク\x0fマ" + + "ンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" + + "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" + + "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + + "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + + "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" + + "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + + "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + + "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + + "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + + "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + + "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" + + "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" + + "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" + + "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x04𤋮\x04𢡊\x04𢡄\x04𣏕\x04𥉉" + + "\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ\x04יִ" + + "\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּׂ\x04א" + + "ַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04ךּ\x04" + + "כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" + + "\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ\x02ڤ" + + "\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ\x02ڳ" + + "\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ\x02ۅ" + + "\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02ی\x04" + + "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" + + "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" + + "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" + + "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ\x04فم" + + "\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" + + "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" + + "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" + + "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ٍّ\x05" + + " َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" + + "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" + + "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" + + "\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" + + "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" + + "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" + + "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" + + "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" + + "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" + + "\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" + + "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" + + "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" + + "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" + + "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" + + "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي\x06سخي" + + "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" + + "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" + + "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" + + "\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ\x02إ" + + "\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز\x02س" + + "\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن\x02ه" + + "\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" + + "\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲\x08𝆹" + + "𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η\x02" + + "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ\x02ڡ" + + "\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" + + "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" + + "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" + + "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" + + "c\x02mc\x02md\x02mr\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ\x03二\x03多" + + "\x03解\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終\x03生\x03販" + + "\x03声\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指\x03走\x03打" + + "\x03禁\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔三〕\x09〔二〕" + + "\x09〔安〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03丸\x03乁\x03你" + + "\x03侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03具\x03㒹\x03內" + + "\x03冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉" + + "\x03勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03灰\x03及\x03叟" + + "\x03叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03啣\x03善\x03喙" + + "\x03喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03埴\x03堍\x03型" + + "\x03堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03㛮" + + "\x03嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03屮\x03峀\x03岍" + + "\x03嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03㡢\x03㡼\x03庰" + + "\x03庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03忍\x03志\x03忹" + + "\x03悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03憤\x03憯\x03懞" + + "\x03懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03掃\x03揤\x03搢" + + "\x03揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03書\x03晉\x03㬙" + + "\x03暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03朡\x03杞\x03杓" + + "\x03㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03槪\x03檨\x03櫛" + + "\x03㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03汧\x03洖\x03派" + + "\x03海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03淹\x03潮\x03濆" + + "\x03瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03爵\x03牐\x03犀" + + "\x03犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03㼛\x03甤\x03甾" + + "\x03異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03䂖\x03硎\x03碌" + + "\x03磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03築\x03䈧\x03糒" + + "\x03䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03罺\x03羕\x03翺" + + "\x03者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03䑫\x03芑\x03芋" + + "\x03芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03莽\x03菧\x03著" + + "\x03荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03䕫\x03虐\x03虜" + + "\x03虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03蠁\x03䗹\x03衠" + + "\x03衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03豕\x03貫\x03賁" + + "\x03贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03鈸\x03鋗\x03鋘" + + "\x03鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03䩶\x03韠\x03䪲" + + "\x03頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03鳽\x03䳎\x03䳭" + + "\x03鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻" + +var xorData string = "" + // Size: 4862 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02" + + "\x03\x1c\x02\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03" + + "\xc1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<" + + "\x03\xc1s*\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03" + + "\x83\xab\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96" + + "\xe1\xcd\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03" + + "\x9a\xec\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c" + + "!\x03\x01\x0c#\x03ʠ\x9d\x03ʣ\x9c\x03ʢ\x9f\x03ʥ\x9e\x03ʤ\x91\x03ʧ\x90\x03" + + "ʦ\x93\x03ʩ\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7" + + "\x03\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca" + + "\xfa\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e" + + "\x03\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca" + + "\xe3\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99" + + "\x03\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca" + + "\xe8\x9c\x03ؓ\x89\x03ߔ\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03" + + "\x0b\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06" + + "\x05\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03" + + "\x0786\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/" + + "\x03\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f" + + "\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-" + + "\x03\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03" + + "\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03" + + "\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03" + + "\x07\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b" + + "\x0a\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03" + + "\x07\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+" + + "\x03\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03" + + "\x044\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03" + + "\x04+ \x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!" + + "\x22\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04" + + "\x03\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>" + + "\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03" + + "\x054\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03" + + "\x05):\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$" + + "\x1e\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226" + + "\x03\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05" + + "\x1b\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05" + + "\x03\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03" + + "\x06\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08" + + "\x03\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03" + + "\x0a6\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a" + + "\x1f\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03" + + "\x0a\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f" + + "\x02\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/" + + "\x03\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a" + + "\x00\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+" + + "\x10\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#" + + "<\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!" + + "\x00\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18." + + "\x03\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15" + + "\x22\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b" + + "\x12\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05" + + "<\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x03\x0b)\x08\x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!" + + "\x10\x03\x0b!0\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b" + + "\x03\x09\x1f\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14" + + "\x03\x0a\x01\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03" + + "\x08='\x03\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07" + + "\x01\x00\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03" + + "\x09\x11\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03" + + "\x0a/1\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03" + + "\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06" + + "\x13\x00\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(" + + ";\x03\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08" + + "\x14$\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03" + + "\x0a\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19" + + "\x01\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18" + + "\x03\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03" + + "\x07\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03" + + "\x0a\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03" + + "\x0b\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03" + + "\x08\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05" + + "\x03\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11" + + "\x03\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03" + + "\x09\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a" + + ".\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" + + "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" + + "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" + + "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" + + "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" + + "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" + + "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" + + "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" + + "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" + + "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" + + "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" + + "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" + + "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" + + "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" + + "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" + + "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" + + "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" + + "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" + + "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" + + "\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 29708 bytes (29.01 KiB). Checksum: c3ecc76d8fffa6e6. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 125: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 125 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 127 blocks, 8128 entries, 16256 bytes +// The third block is the zero block. +var idnaValues = [8128]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, + 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, + 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + // Block 0x5, offset 0x140 + 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, + 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, + 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808, + 0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040, + 0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040, + 0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040, + // Block 0x16, offset 0x580 + 0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308, + 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, + 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, + 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, + 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, + 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, + 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, + 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, + 0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008, + 0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008, + 0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008, + 0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040, + 0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008, + 0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008, + 0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008, + 0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040, + 0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008, + // Block 0x18, offset 0x600 + 0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040, + 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, + 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, + 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, + 0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018, + 0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040, + // Block 0x19, offset 0x640 + 0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008, + 0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040, + 0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008, + 0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008, + 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, + 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, + // Block 0x1a, offset 0x680 + 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, + 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, + 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, + 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, + 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, + 0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008, + 0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008, + 0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008, + 0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008, + 0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008, + 0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008, + 0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008, + 0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008, + // Block 0x1c, offset 0x700 + 0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308, + 0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008, + 0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040, + 0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040, + 0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040, + 0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308, + 0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040, + 0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308, + 0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308, + // Block 0x1d, offset 0x740 + 0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008, + 0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008, + 0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008, + 0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008, + 0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008, + 0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008, + 0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040, + 0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040, + 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, + 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, + 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018, + 0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008, + 0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040, + 0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040, + 0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040, + 0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040, + 0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008, + 0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008, + 0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008, + // Block 0x20, offset 0x800 + 0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040, + 0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308, + 0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040, + 0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040, + 0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040, + 0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308, + 0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040, + 0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018, + 0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018, + // Block 0x21, offset 0x840 + 0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008, + 0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008, + 0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040, + 0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008, + 0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008, + 0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008, + 0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040, + 0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308, + // Block 0x22, offset 0x880 + 0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040, + 0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008, + 0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040, + 0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040, + 0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040, + 0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308, + 0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040, + 0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040, + 0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008, + 0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018, + 0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018, + 0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008, + 0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008, + // Block 0x24, offset 0x900 + 0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040, + 0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040, + 0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008, + 0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008, + 0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008, + 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, + 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308, + 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, + // Block 0x25, offset 0x940 + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, + 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, + // Block 0x26, offset 0x980 + 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, + 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, + 0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008, + 0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008, + 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, + 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, + 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, + 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, + 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, + 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + // Block 0x28, offset 0xa00 + 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, + 0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, + 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, + 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9, + 0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099, + 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, + 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, + 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, + // Block 0x29, offset 0xa40 + 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, + 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, + 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, + 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, + 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, + 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251, + 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, + 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, + 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, + 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + // Block 0x2a, offset 0xa80 + 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, + 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, + 0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008, + 0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008, + 0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008, + 0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008, + 0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008, + 0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008, + 0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008, + 0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008, + 0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, + 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008, + 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008, + 0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045, + 0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008, + 0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045, + 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, + 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, + 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, + 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, + 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, + 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, + 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, + 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, + 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, + 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, + 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, + 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, + 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459, + 0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e, + // Block 0x2e, offset 0xb80 + 0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489, + 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, + 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, + 0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, + 0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, + 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, + 0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d, + 0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796, + 0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018, + 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, + 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, + 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, + 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, + // Block 0x30, offset 0xc00 + 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, + 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, + 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, + 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, + 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5, + 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + // Block 0x31, offset 0xc40 + 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, + 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed, + 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, + 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, + 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, + 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, + 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, + 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, + // Block 0x32, offset 0xc80 + 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, + 0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249, + 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, + 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018, + 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, + 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, + 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, + 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5, + 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, + 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, + 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, + 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, + 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439, + 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, + 0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, + 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, + 0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd, + 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + // Block 0x34, offset 0xd00 + 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, + 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, + 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, + 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, + 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, + 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, + 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, + 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e, + 0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe, + 0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + // Block 0x35, offset 0xd40 + 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, + 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e, + 0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e, + 0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde, + 0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e, + 0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e, + 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, + 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + // Block 0x36, offset 0xd80 + 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, + 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, + 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, + 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, + 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, + 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, + 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, + 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, + 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, + 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008, + 0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008, + 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, + 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, + 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5, + 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, + 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, + 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + // Block 0x38, offset 0xe00 + 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, + 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, + 0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008, + 0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008, + 0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008, + 0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008, + 0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018, + 0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308, + 0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040, + 0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018, + 0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018, + // Block 0x39, offset 0xe40 + 0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5, + 0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875, + 0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935, + 0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040, + 0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040, + 0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040, + 0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040, + 0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040, + 0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, + 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, + // Block 0x3a, offset 0xe80 + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, + 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, + 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, + 0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018, + 0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018, + 0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018, + 0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018, + 0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018, + 0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018, + 0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018, + // Block 0x3b, offset 0xec0 + 0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5, + 0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15, + 0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75, + 0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95, + 0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75, + 0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5, + 0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55, + 0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15, + 0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95, + 0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5, + 0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5, + 0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5, + 0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018, + 0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5, + 0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275, + 0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008, + 0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008, + 0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008, + 0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008, + 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040, + 0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040, + // Block 0x3d, offset 0xf40 + 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5, + 0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761, + 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, + 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, + 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, + 0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475, + 0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535, + 0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5, + 0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5, + 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018, + // Block 0x3e, offset 0xf80 + 0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795, + 0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855, + 0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915, + 0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5, + 0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95, + 0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55, + 0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5, + 0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95, + 0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, + 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, + 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, + 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, + 0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, + 0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d, + 0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05, + 0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95, + 0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd, + 0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55, + 0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5, + 0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015, + 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0040, + // Block 0x40, offset 0x1000 + 0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9, + 0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1, + 0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9, + 0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549, + 0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1, + 0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11, + 0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91, + 0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9, + 0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011, + 0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209, + 0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361, + // Block 0x41, offset 0x1040 + 0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541, + 0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781, + 0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979, + 0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89, + 0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1, + 0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99, + 0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9, + 0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9, + 0x1070: 0x6009, 0x1071: 0x4045, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x4065, 0x1075: 0x6069, + 0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60b1, 0x107b: 0x60c9, + 0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9, + // Block 0x42, offset 0x1080 + 0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x40a5, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271, + 0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40c5, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9, + 0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x4105, + 0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6359, 0x1097: 0x6371, + 0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x41a5, 0x109c: 0x63d1, 0x109d: 0x63e9, + 0x109e: 0x6401, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6419, 0x10a2: 0x4205, 0x10a3: 0x4225, + 0x10a4: 0x4245, 0x10a5: 0x6431, 0x10a6: 0x4265, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211, + 0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64b1, 0x10af: 0x64f1, + 0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x4305, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599, + 0x10b6: 0x4325, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9, + 0x10bc: 0x4345, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671, + 0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709, + 0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781, + 0x10d2: 0x43a5, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67b1, + 0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811, + 0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901, + 0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1, + 0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11, + 0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31, + 0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51, + 0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x4425, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, + 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, + 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, + 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, + 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, + 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, + 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, + 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11, + 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, + 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, + 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, + 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, + 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, + 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, + 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, + 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, + 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, + 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, + 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, + 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, + 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, + 0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, + 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, + 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, + 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, + 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, + 0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008, + 0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008, + 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008, + 0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008, + // Block 0x49, offset 0x1240 + 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, + 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, + 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, + 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, + 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, + 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, + 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, + 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, + 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, + 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, + 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19, + 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91, + 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7001, + 0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1, + 0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149, + 0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2, + 0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1, + 0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1, + 0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479, + 0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040, + 0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659, + 0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721, + 0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751, + 0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769, + 0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799, + 0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1, + 0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1, + 0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9, + 0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829, + 0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841, + // Block 0x4d, offset 0x1340 + 0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871, + 0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9, + 0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9, + 0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919, + 0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931, + 0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961, + 0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991, + 0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1, + 0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09, + 0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479, + 0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81, + 0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1, + 0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19, + 0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91, + 0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1, + 0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1, + 0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1, + 0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1, + 0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991, + 0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81, + 0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a, + 0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99, + 0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89, + 0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79, + 0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19, + 0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469, + // Block 0x50, offset 0x1400 + 0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649, + 0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9, + 0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49, + 0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21, + 0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9, + 0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01, + 0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91, + 0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9, + 0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171, + 0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289, + 0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329, + // Block 0x51, offset 0x1440 + 0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1, + 0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621, + 0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739, + 0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1, + 0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9, + 0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29, + 0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079, + 0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1, + 0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171, + 0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261, + 0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301, + // Block 0x52, offset 0x1480 + 0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1, + 0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1, + 0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171, + 0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261, + 0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351, + 0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441, + 0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509, + 0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1, + 0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081, + 0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239, + 0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, + 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, + 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609, + 0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721, + 0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839, + 0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919, + 0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9, + 0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9, + 0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9, + 0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1, + 0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79, + // Block 0x54, offset 0x1500 + 0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989, + 0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9, + 0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12, + 0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d8d, + 0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7dad, + 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2, + 0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, + 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + // Block 0x56, offset 0x1580 + 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, + 0x158c: 0x7fae, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7fcd, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa, + 0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7ecd, + 0x159e: 0x7f2d, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99, + 0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda, + 0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x800e, 0x15b1: 0xb009, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, + 0x15b6: 0x806e, 0x15b7: 0xb031, 0x15b8: 0x808e, 0x15b9: 0xb059, 0x15ba: 0x80ae, 0x15bb: 0xb081, + 0x15bc: 0x80ce, 0x15bd: 0xb0a9, 0x15be: 0x80ee, 0x15bf: 0xb0d1, + // Block 0x57, offset 0x15c0 + 0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141, + 0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171, + 0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1, + 0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1, + 0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201, + 0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219, + 0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249, + 0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291, + 0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1, + 0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9, + 0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1, + // Block 0x58, offset 0x1600 + 0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321, + 0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339, + 0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369, + 0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381, + 0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1, + 0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9, + 0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9, + 0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1, + 0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441, + 0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9, + 0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea, + 0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2, + 0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9, + 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, + 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2, + 0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, + 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, + 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, + 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, + 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a, + 0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, + 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, + 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, + 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, + 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a, + 0x169e: 0xb532, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d, + 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, + 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, + 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, + 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, + 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, + 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, + 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, + 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, + 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, + 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, + 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, + 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, + 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, + 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, + 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, + 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, + 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x8a0e, + 0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, + 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, + 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, + 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, + 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, + 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, + 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, + 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, + 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, + 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, + 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + // Block 0x5e, offset 0x1780 + 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, + 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, + 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, + 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, + 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, + 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, + 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, + 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, + 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, + 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, + 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, + 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, + 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + // Block 0x60, offset 0x1800 + 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, + 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, + 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, + 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, + 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, + 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, + 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, + 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, + 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, + 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199, + 0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359, + 0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269, + 0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369, + 0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9, + 0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259, + 0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99, + 0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089, + 0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9, + 0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249, + 0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359, + // Block 0x62, offset 0x1880 + 0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269, + 0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369, + 0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9, + 0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259, + 0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99, + 0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089, + 0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9, + 0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249, + 0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71, + 0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9, + 0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9, + 0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259, + 0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99, + 0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089, + 0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040, + 0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040, + 0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71, + 0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9, + 0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1, + 0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199, + 0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259, + // Block 0x64, offset 0x1900 + 0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99, + 0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089, + 0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9, + 0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249, + 0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71, + 0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9, + 0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1, + 0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199, + 0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359, + 0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269, + 0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089, + // Block 0x65, offset 0x1940 + 0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9, + 0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040, + 0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71, + 0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9, + 0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040, + 0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199, + 0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359, + 0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269, + 0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369, + 0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9, + 0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040, + // Block 0x66, offset 0x1980 + 0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040, + 0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9, + 0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040, + 0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199, + 0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359, + 0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269, + 0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369, + 0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9, + 0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259, + 0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99, + 0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1, + 0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199, + 0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359, + 0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269, + 0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369, + 0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9, + 0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259, + 0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99, + 0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089, + 0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9, + 0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359, + 0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269, + 0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369, + 0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9, + 0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259, + 0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99, + 0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089, + 0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9, + 0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249, + 0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71, + 0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369, + 0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9, + 0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259, + 0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99, + 0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089, + 0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9, + 0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249, + 0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71, + 0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9, + 0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1, + 0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259, + 0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99, + 0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089, + 0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9, + 0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249, + 0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71, + 0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9, + 0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1, + 0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199, + 0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359, + 0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089, + 0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9, + 0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249, + 0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71, + 0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9, + 0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1, + 0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099, + 0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429, + 0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71, + 0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9, + 0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9, + 0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11, + 0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109, + 0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1, + 0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429, + 0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099, + 0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429, + 0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71, + 0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9, + 0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01, + 0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11, + 0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109, + 0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1, + 0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429, + 0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099, + 0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429, + 0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71, + 0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9, + 0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01, + 0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1, + 0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109, + 0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1, + 0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429, + 0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099, + 0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429, + 0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71, + 0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9, + 0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01, + 0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1, + 0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41, + 0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1, + 0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429, + 0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099, + 0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429, + 0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71, + 0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9, + 0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01, + 0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1, + 0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41, + 0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1, + 0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429, + 0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41, + 0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079, + 0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1, + 0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61, + 0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9, + 0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81, + 0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079, + 0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1, + 0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61, + 0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115, + 0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135, + 0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115, + 0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175, + 0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115, + 0x1c5e: 0x8b3d, 0x1c5f: 0x8b3d, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08, + 0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08, + 0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08, + 0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08, + 0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08, + 0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08, + // Block 0x72, offset 0x1c80 + 0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411, + 0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1, + 0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9, + 0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231, + 0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949, + 0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040, + 0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429, + 0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339, + 0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1, + 0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351, + 0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040, + 0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1, + 0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9, + 0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231, + 0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949, + 0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040, + 0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429, + 0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339, + 0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1, + 0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351, + 0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040, + // Block 0x74, offset 0x1d00 + 0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411, + 0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1, + 0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9, + 0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231, + 0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040, + 0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249, + 0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429, + 0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339, + 0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1, + 0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351, + 0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02, + 0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018, + 0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2, + 0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72, + 0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32, + 0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2, + 0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2, + 0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018, + 0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199, + 0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359, + 0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089, + 0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1, + 0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018, + 0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018, + 0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018, + 0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018, + 0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018, + 0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0xc1c1, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040, + 0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018, + 0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018, + 0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xc1f1, 0x1dc1: 0xc229, 0x1dc2: 0xc261, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040, + 0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040, + 0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc281, 0x1dd1: 0xc2a1, + 0x1dd2: 0xc2c1, 0x1dd3: 0xc2e1, 0x1dd4: 0xc301, 0x1dd5: 0xc321, 0x1dd6: 0xc341, 0x1dd7: 0xc361, + 0x1dd8: 0xc381, 0x1dd9: 0xc3a1, 0x1dda: 0xc3c1, 0x1ddb: 0xc3e1, 0x1ddc: 0xc401, 0x1ddd: 0xc421, + 0x1dde: 0xc441, 0x1ddf: 0xc461, 0x1de0: 0xc481, 0x1de1: 0xc4a1, 0x1de2: 0xc4c1, 0x1de3: 0xc4e1, + 0x1de4: 0xc501, 0x1de5: 0xc521, 0x1de6: 0xc541, 0x1de7: 0xc561, 0x1de8: 0xc581, 0x1de9: 0xc5a1, + 0x1dea: 0xc5c1, 0x1deb: 0xc5e1, 0x1dec: 0xc601, 0x1ded: 0xc621, 0x1dee: 0xc641, 0x1def: 0xc661, + 0x1df0: 0xc681, 0x1df1: 0xc6a1, 0x1df2: 0xc6c1, 0x1df3: 0xc6e1, 0x1df4: 0xc701, 0x1df5: 0xc721, + 0x1df6: 0xc741, 0x1df7: 0xc761, 0x1df8: 0xc781, 0x1df9: 0xc7a1, 0x1dfa: 0xc7c1, 0x1dfb: 0xc7e1, + 0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xcb11, 0x1e01: 0xcb31, 0x1e02: 0xcb51, 0x1e03: 0x8b55, 0x1e04: 0xcb71, 0x1e05: 0xcb91, + 0x1e06: 0xcbb1, 0x1e07: 0xcbd1, 0x1e08: 0xcbf1, 0x1e09: 0xcc11, 0x1e0a: 0xcc31, 0x1e0b: 0xcc51, + 0x1e0c: 0xcc71, 0x1e0d: 0x8b75, 0x1e0e: 0xcc91, 0x1e0f: 0xccb1, 0x1e10: 0xccd1, 0x1e11: 0xccf1, + 0x1e12: 0x8b95, 0x1e13: 0xcd11, 0x1e14: 0xcd31, 0x1e15: 0xc441, 0x1e16: 0x8bb5, 0x1e17: 0xcd51, + 0x1e18: 0xcd71, 0x1e19: 0xcd91, 0x1e1a: 0xcdb1, 0x1e1b: 0xcdd1, 0x1e1c: 0x8bd5, 0x1e1d: 0xcdf1, + 0x1e1e: 0xce11, 0x1e1f: 0xce31, 0x1e20: 0xce51, 0x1e21: 0xce71, 0x1e22: 0xc7a1, 0x1e23: 0xce91, + 0x1e24: 0xceb1, 0x1e25: 0xced1, 0x1e26: 0xcef1, 0x1e27: 0xcf11, 0x1e28: 0xcf31, 0x1e29: 0xcf51, + 0x1e2a: 0xcf71, 0x1e2b: 0xcf91, 0x1e2c: 0xcfb1, 0x1e2d: 0xcfd1, 0x1e2e: 0xcff1, 0x1e2f: 0xd011, + 0x1e30: 0xd031, 0x1e31: 0xd051, 0x1e32: 0xd051, 0x1e33: 0xd051, 0x1e34: 0x8bf5, 0x1e35: 0xd071, + 0x1e36: 0xd091, 0x1e37: 0xd0b1, 0x1e38: 0x8c15, 0x1e39: 0xd0d1, 0x1e3a: 0xd0f1, 0x1e3b: 0xd111, + 0x1e3c: 0xd131, 0x1e3d: 0xd151, 0x1e3e: 0xd171, 0x1e3f: 0xd191, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xd1b1, 0x1e41: 0xd1d1, 0x1e42: 0xd1f1, 0x1e43: 0xd211, 0x1e44: 0xd231, 0x1e45: 0xd251, + 0x1e46: 0xd251, 0x1e47: 0xd271, 0x1e48: 0xd291, 0x1e49: 0xd2b1, 0x1e4a: 0xd2d1, 0x1e4b: 0xd2f1, + 0x1e4c: 0xd311, 0x1e4d: 0xd331, 0x1e4e: 0xd351, 0x1e4f: 0xd371, 0x1e50: 0xd391, 0x1e51: 0xd3b1, + 0x1e52: 0xd3d1, 0x1e53: 0xd3f1, 0x1e54: 0xd411, 0x1e55: 0xd431, 0x1e56: 0xd451, 0x1e57: 0xd471, + 0x1e58: 0xd491, 0x1e59: 0x8c35, 0x1e5a: 0xd4b1, 0x1e5b: 0xd4d1, 0x1e5c: 0xd4f1, 0x1e5d: 0xc321, + 0x1e5e: 0xd511, 0x1e5f: 0xd531, 0x1e60: 0x8c55, 0x1e61: 0x8c75, 0x1e62: 0xd551, 0x1e63: 0xd571, + 0x1e64: 0xd591, 0x1e65: 0xd5b1, 0x1e66: 0xd5d1, 0x1e67: 0xd5f1, 0x1e68: 0x2040, 0x1e69: 0xd611, + 0x1e6a: 0xd631, 0x1e6b: 0xd631, 0x1e6c: 0x8c95, 0x1e6d: 0xd651, 0x1e6e: 0xd671, 0x1e6f: 0xd691, + 0x1e70: 0xd6b1, 0x1e71: 0x8cb5, 0x1e72: 0xd6d1, 0x1e73: 0xd6f1, 0x1e74: 0x2040, 0x1e75: 0xd711, + 0x1e76: 0xd731, 0x1e77: 0xd751, 0x1e78: 0xd771, 0x1e79: 0xd791, 0x1e7a: 0xd7b1, 0x1e7b: 0x8cd5, + 0x1e7c: 0xd7d1, 0x1e7d: 0x8cf5, 0x1e7e: 0xd7f1, 0x1e7f: 0xd811, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xd831, 0x1e81: 0xd851, 0x1e82: 0xd871, 0x1e83: 0xd891, 0x1e84: 0xd8b1, 0x1e85: 0xd8d1, + 0x1e86: 0xd8f1, 0x1e87: 0xd911, 0x1e88: 0xd931, 0x1e89: 0x8d15, 0x1e8a: 0xd951, 0x1e8b: 0xd971, + 0x1e8c: 0xd991, 0x1e8d: 0xd9b1, 0x1e8e: 0xd9d1, 0x1e8f: 0x8d35, 0x1e90: 0xd9f1, 0x1e91: 0x8d55, + 0x1e92: 0x8d75, 0x1e93: 0xda11, 0x1e94: 0xda31, 0x1e95: 0xda31, 0x1e96: 0xda51, 0x1e97: 0x8d95, + 0x1e98: 0x8db5, 0x1e99: 0xda71, 0x1e9a: 0xda91, 0x1e9b: 0xdab1, 0x1e9c: 0xdad1, 0x1e9d: 0xdaf1, + 0x1e9e: 0xdb11, 0x1e9f: 0xdb31, 0x1ea0: 0xdb51, 0x1ea1: 0xdb71, 0x1ea2: 0xdb91, 0x1ea3: 0xdbb1, + 0x1ea4: 0x8dd5, 0x1ea5: 0xdbd1, 0x1ea6: 0xdbf1, 0x1ea7: 0xdc11, 0x1ea8: 0xdc31, 0x1ea9: 0xdc11, + 0x1eaa: 0xdc51, 0x1eab: 0xdc71, 0x1eac: 0xdc91, 0x1ead: 0xdcb1, 0x1eae: 0xdcd1, 0x1eaf: 0xdcf1, + 0x1eb0: 0xdd11, 0x1eb1: 0xdd31, 0x1eb2: 0xdd51, 0x1eb3: 0xdd71, 0x1eb4: 0xdd91, 0x1eb5: 0xddb1, + 0x1eb6: 0xddd1, 0x1eb7: 0xddf1, 0x1eb8: 0x8df5, 0x1eb9: 0xde11, 0x1eba: 0xde31, 0x1ebb: 0xde51, + 0x1ebc: 0xde71, 0x1ebd: 0xde91, 0x1ebe: 0x8e15, 0x1ebf: 0xdeb1, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe5b1, 0x1ec1: 0xe5d1, 0x1ec2: 0xe5f1, 0x1ec3: 0xe611, 0x1ec4: 0xe631, 0x1ec5: 0xe651, + 0x1ec6: 0x8f35, 0x1ec7: 0xe671, 0x1ec8: 0xe691, 0x1ec9: 0xe6b1, 0x1eca: 0xe6d1, 0x1ecb: 0xe6f1, + 0x1ecc: 0xe711, 0x1ecd: 0x8f55, 0x1ece: 0xe731, 0x1ecf: 0xe751, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95, + 0x1ed2: 0xe771, 0x1ed3: 0xe791, 0x1ed4: 0xe7b1, 0x1ed5: 0xe7d1, 0x1ed6: 0xe7f1, 0x1ed7: 0xe811, + 0x1ed8: 0xe831, 0x1ed9: 0xe851, 0x1eda: 0xe871, 0x1edb: 0x8fb5, 0x1edc: 0xe891, 0x1edd: 0x8fd5, + 0x1ede: 0xe8b1, 0x1edf: 0x2040, 0x1ee0: 0xe8d1, 0x1ee1: 0xe8f1, 0x1ee2: 0xe911, 0x1ee3: 0x8ff5, + 0x1ee4: 0xe931, 0x1ee5: 0xe951, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0xe971, 0x1ee9: 0xe991, + 0x1eea: 0xe9b1, 0x1eeb: 0xe9d1, 0x1eec: 0xe9f1, 0x1eed: 0xe9f1, 0x1eee: 0xea11, 0x1eef: 0xea31, + 0x1ef0: 0xea51, 0x1ef1: 0xea71, 0x1ef2: 0xea91, 0x1ef3: 0xeab1, 0x1ef4: 0xead1, 0x1ef5: 0x9055, + 0x1ef6: 0xeaf1, 0x1ef7: 0x9075, 0x1ef8: 0xeb11, 0x1ef9: 0x9095, 0x1efa: 0xeb31, 0x1efb: 0x90b5, + 0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0xeb51, 0x1eff: 0xeb71, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xeb91, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0xebb1, + 0x1f06: 0xebd1, 0x1f07: 0xebd1, 0x1f08: 0xebf1, 0x1f09: 0xec11, 0x1f0a: 0xec31, 0x1f0b: 0xec51, + 0x1f0c: 0xec71, 0x1f0d: 0x9195, 0x1f0e: 0xec91, 0x1f0f: 0xecb1, 0x1f10: 0xecd1, 0x1f11: 0xecf1, + 0x1f12: 0x91b5, 0x1f13: 0xed11, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0xed31, 0x1f17: 0xed51, + 0x1f18: 0xed71, 0x1f19: 0xed91, 0x1f1a: 0xedb1, 0x1f1b: 0xedd1, 0x1f1c: 0x9215, 0x1f1d: 0x9235, + 0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0xedf1, 0x1f21: 0x9275, 0x1f22: 0xee11, 0x1f23: 0xee31, + 0x1f24: 0xee51, 0x1f25: 0x9295, 0x1f26: 0xee71, 0x1f27: 0xee91, 0x1f28: 0xeeb1, 0x1f29: 0xeed1, + 0x1f2a: 0xeef1, 0x1f2b: 0x92b5, 0x1f2c: 0xef11, 0x1f2d: 0xef31, 0x1f2e: 0xef51, 0x1f2f: 0xef71, + 0x1f30: 0xef91, 0x1f31: 0xefb1, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0xefd1, 0x1f35: 0x9315, + 0x1f36: 0xeff1, 0x1f37: 0x9335, 0x1f38: 0xf011, 0x1f39: 0xf031, 0x1f3a: 0xf051, 0x1f3b: 0x9355, + 0x1f3c: 0x9375, 0x1f3d: 0xf071, 0x1f3e: 0x9395, 0x1f3f: 0xf091, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xf6d1, 0x1f41: 0xf6f1, 0x1f42: 0xf711, 0x1f43: 0xf731, 0x1f44: 0xf751, 0x1f45: 0x9555, + 0x1f46: 0xf771, 0x1f47: 0xf791, 0x1f48: 0xf7b1, 0x1f49: 0xf7d1, 0x1f4a: 0xf7f1, 0x1f4b: 0x9575, + 0x1f4c: 0x9595, 0x1f4d: 0xf811, 0x1f4e: 0xf831, 0x1f4f: 0xf851, 0x1f50: 0xf871, 0x1f51: 0xf891, + 0x1f52: 0xf8b1, 0x1f53: 0x95b5, 0x1f54: 0xf8d1, 0x1f55: 0xf8f1, 0x1f56: 0xf911, 0x1f57: 0xf931, + 0x1f58: 0x95d5, 0x1f59: 0x95f5, 0x1f5a: 0xf951, 0x1f5b: 0xf971, 0x1f5c: 0xf991, 0x1f5d: 0x9615, + 0x1f5e: 0xf9b1, 0x1f5f: 0xf9d1, 0x1f60: 0x684d, 0x1f61: 0x9635, 0x1f62: 0xf9f1, 0x1f63: 0xfa11, + 0x1f64: 0xfa31, 0x1f65: 0x9655, 0x1f66: 0xfa51, 0x1f67: 0xfa71, 0x1f68: 0xfa91, 0x1f69: 0xfab1, + 0x1f6a: 0xfad1, 0x1f6b: 0xfaf1, 0x1f6c: 0xfb11, 0x1f6d: 0x9675, 0x1f6e: 0xfb31, 0x1f6f: 0xfb51, + 0x1f70: 0xfb71, 0x1f71: 0x9695, 0x1f72: 0xfb91, 0x1f73: 0xfbb1, 0x1f74: 0xfbd1, 0x1f75: 0xfbf1, + 0x1f76: 0x7b6d, 0x1f77: 0x96b5, 0x1f78: 0xfc11, 0x1f79: 0xfc31, 0x1f7a: 0xfc51, 0x1f7b: 0x96d5, + 0x1f7c: 0xfc71, 0x1f7d: 0x96f5, 0x1f7e: 0xfc91, 0x1f7f: 0xfc91, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0xfcb1, 0x1f81: 0x9715, 0x1f82: 0xfcd1, 0x1f83: 0xfcf1, 0x1f84: 0xfd11, 0x1f85: 0xfd31, + 0x1f86: 0xfd51, 0x1f87: 0xfd71, 0x1f88: 0xfd91, 0x1f89: 0x9735, 0x1f8a: 0xfdb1, 0x1f8b: 0xfdd1, + 0x1f8c: 0xfdf1, 0x1f8d: 0xfe11, 0x1f8e: 0xfe31, 0x1f8f: 0xfe51, 0x1f90: 0x9755, 0x1f91: 0xfe71, + 0x1f92: 0x9775, 0x1f93: 0x9795, 0x1f94: 0x97b5, 0x1f95: 0xfe91, 0x1f96: 0xfeb1, 0x1f97: 0xfed1, + 0x1f98: 0xfef1, 0x1f99: 0xff11, 0x1f9a: 0xff31, 0x1f9b: 0xff51, 0x1f9c: 0xff71, 0x1f9d: 0x97d5, + 0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040, + 0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040, + 0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040, + 0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040, + 0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040, + 0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040, +} + +// idnaIndex: 36 blocks, 2304 entries, 4608 bytes +// Block 0 is the zero block. +var idnaIndex = [2304]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c, + 0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21, + // Block 0x4, offset 0x100 + 0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16, + 0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d, + 0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91, + 0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96, + // Block 0x5, offset 0x140 + 0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e, + 0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6, + 0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f, + 0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae, + 0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6, + 0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe, + 0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3, + 0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c, + // Block 0x6, offset 0x180 + 0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b, + 0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b, + 0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b, + 0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b, + 0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b, + 0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0x9b, + 0x1b0: 0xd0, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd1, 0x1b5: 0xd2, 0x1b6: 0xd3, 0x1b7: 0xd4, + 0x1b8: 0xd5, 0x1b9: 0xd6, 0x1ba: 0xd7, 0x1bb: 0xd8, 0x1bc: 0xd9, 0x1bd: 0xda, 0x1be: 0xdb, 0x1bf: 0x37, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x38, 0x1c1: 0xdc, 0x1c2: 0xdd, 0x1c3: 0xde, 0x1c4: 0xdf, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe0, + 0x1c8: 0xe1, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f, + 0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f, + 0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f, + 0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f, + 0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f, + 0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f, + // Block 0x8, offset 0x200 + 0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f, + 0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f, + 0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f, + 0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f, + 0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f, + 0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f, + 0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b, + 0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f, + // Block 0x9, offset 0x240 + 0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f, + 0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f, + 0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f, + 0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f, + 0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f, + 0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f, + 0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f, + 0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f, + // Block 0xa, offset 0x280 + 0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f, + 0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f, + 0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f, + 0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f, + 0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f, + 0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f, + 0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f, + 0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe2, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f, + 0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f, + 0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe3, 0x2d3: 0xe4, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f, + 0x2d8: 0xe5, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe6, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe7, + 0x2e0: 0xe8, 0x2e1: 0xe9, 0x2e2: 0xea, 0x2e3: 0xeb, 0x2e4: 0xec, 0x2e5: 0xed, 0x2e6: 0xee, 0x2e7: 0xef, + 0x2e8: 0xf0, 0x2e9: 0xf1, 0x2ea: 0xf2, 0x2eb: 0xf3, 0x2ec: 0xf4, 0x2ed: 0xf5, 0x2ee: 0xf6, 0x2ef: 0xf7, + 0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f, + 0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f, + // Block 0xc, offset 0x300 + 0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f, + 0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f, + 0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f, + 0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf8, 0x31f: 0xf9, + // Block 0xd, offset 0x340 + 0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba, + 0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba, + 0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba, + 0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba, + 0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba, + 0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba, + 0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba, + 0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba, + // Block 0xe, offset 0x380 + 0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba, + 0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba, + 0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba, + 0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba, + 0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfa, 0x3a5: 0xfb, 0x3a6: 0xfc, 0x3a7: 0xfd, + 0x3a8: 0x47, 0x3a9: 0xfe, 0x3aa: 0xff, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, + 0x3b0: 0x100, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x101, 0x3b7: 0x52, + 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x102, 0x3c1: 0x103, 0x3c2: 0x9f, 0x3c3: 0x104, 0x3c4: 0x105, 0x3c5: 0x9b, 0x3c6: 0x106, 0x3c7: 0x107, + 0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x108, 0x3cb: 0x109, 0x3cc: 0x10a, 0x3cd: 0x10b, 0x3ce: 0x10c, 0x3cf: 0x10d, + 0x3d0: 0x10e, 0x3d1: 0x9f, 0x3d2: 0x10f, 0x3d3: 0x110, 0x3d4: 0x111, 0x3d5: 0x112, 0x3d6: 0xba, 0x3d7: 0xba, + 0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x113, 0x3dd: 0x114, 0x3de: 0xba, 0x3df: 0xba, + 0x3e0: 0x115, 0x3e1: 0x116, 0x3e2: 0x117, 0x3e3: 0x118, 0x3e4: 0x119, 0x3e5: 0xba, 0x3e6: 0x11a, 0x3e7: 0x11b, + 0x3e8: 0x11c, 0x3e9: 0x11d, 0x3ea: 0x11e, 0x3eb: 0x5b, 0x3ec: 0x11f, 0x3ed: 0x120, 0x3ee: 0x5c, 0x3ef: 0xba, + 0x3f0: 0x121, 0x3f1: 0x122, 0x3f2: 0x123, 0x3f3: 0x124, 0x3f4: 0x125, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba, + 0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x127, 0x3fd: 0x128, 0x3fe: 0xba, 0x3ff: 0x129, + // Block 0x10, offset 0x400 + 0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131, + 0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba, + 0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a, + 0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba, + 0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0x143, 0x427: 0x144, + 0x428: 0x145, 0x429: 0x146, 0x42a: 0x147, 0x42b: 0x148, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba, + 0x430: 0x149, 0x431: 0x14a, 0x432: 0x14b, 0x433: 0xba, 0x434: 0x14c, 0x435: 0x14d, 0x436: 0x14e, 0x437: 0xba, + 0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14f, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0x150, + // Block 0x11, offset 0x440 + 0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f, + 0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x151, 0x44f: 0xba, + 0x450: 0x9b, 0x451: 0x152, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x153, 0x456: 0xba, 0x457: 0xba, + 0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba, + 0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba, + 0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba, + 0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba, + 0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba, + // Block 0x12, offset 0x480 + 0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f, + 0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f, + 0x490: 0x154, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba, + 0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba, + 0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba, + 0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba, + 0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba, + 0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba, + 0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba, + 0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f, + 0x4d8: 0x9f, 0x4d9: 0x155, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba, + 0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba, + 0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba, + 0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba, + 0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba, + // Block 0x14, offset 0x500 + 0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba, + 0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba, + 0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba, + 0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba, + 0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f, + 0x528: 0x148, 0x529: 0x156, 0x52a: 0xba, 0x52b: 0x157, 0x52c: 0x158, 0x52d: 0x159, 0x52e: 0x15a, 0x52f: 0xba, + 0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba, + 0x538: 0xba, 0x539: 0x15b, 0x53a: 0x15c, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15d, 0x53e: 0x15e, 0x53f: 0x15f, + // Block 0x15, offset 0x540 + 0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f, + 0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f, + 0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f, + 0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x160, + 0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f, + 0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x161, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba, + 0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba, + 0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba, + // Block 0x16, offset 0x580 + 0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x162, 0x585: 0x163, 0x586: 0x9f, 0x587: 0x9f, + 0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x164, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba, + 0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba, + 0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba, + 0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba, + 0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba, + 0x5b0: 0x9f, 0x5b1: 0x165, 0x5b2: 0x166, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba, + 0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x167, 0x5c4: 0x168, 0x5c5: 0x169, 0x5c6: 0x16a, 0x5c7: 0x16b, + 0x5c8: 0x9b, 0x5c9: 0x16c, 0x5ca: 0xba, 0x5cb: 0x16d, 0x5cc: 0x9b, 0x5cd: 0x16e, 0x5ce: 0xba, 0x5cf: 0xba, + 0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66, + 0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e, + 0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b, + 0x5e8: 0x16f, 0x5e9: 0x170, 0x5ea: 0x171, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba, + 0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba, + 0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba, + // Block 0x18, offset 0x600 + 0x600: 0x172, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0x173, 0x605: 0x174, 0x606: 0xba, 0x607: 0xba, + 0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0x175, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba, + 0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba, + 0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba, + 0x620: 0x121, 0x621: 0x121, 0x622: 0x121, 0x623: 0x176, 0x624: 0x6f, 0x625: 0x177, 0x626: 0xba, 0x627: 0xba, + 0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba, + 0x630: 0xba, 0x631: 0x178, 0x632: 0x179, 0x633: 0xba, 0x634: 0x17a, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba, + 0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x17b, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba, + // Block 0x19, offset 0x640 + 0x640: 0x17c, 0x641: 0x9b, 0x642: 0x17d, 0x643: 0x17e, 0x644: 0x73, 0x645: 0x74, 0x646: 0x17f, 0x647: 0x180, + 0x648: 0x75, 0x649: 0x181, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b, + 0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b, + 0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x182, 0x65c: 0x9b, 0x65d: 0x183, 0x65e: 0x9b, 0x65f: 0x184, + 0x660: 0x185, 0x661: 0x186, 0x662: 0x187, 0x663: 0xba, 0x664: 0x188, 0x665: 0x189, 0x666: 0x18a, 0x667: 0x18b, + 0x668: 0x9b, 0x669: 0x18c, 0x66a: 0x18d, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba, + 0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba, + 0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba, + // Block 0x1a, offset 0x680 + 0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f, + 0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f, + 0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f, + 0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x18e, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f, + 0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f, + 0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f, + 0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f, + 0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f, + 0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f, + 0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f, + 0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x18f, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f, + 0x6e0: 0x190, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f, + 0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f, + 0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f, + 0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f, + // Block 0x1c, offset 0x700 + 0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f, + 0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f, + 0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f, + 0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f, + 0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f, + 0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f, + 0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f, + 0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x191, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f, + // Block 0x1d, offset 0x740 + 0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f, + 0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f, + 0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f, + 0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f, + 0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f, + 0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x192, + 0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba, + 0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba, + // Block 0x1e, offset 0x780 + 0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba, + 0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba, + 0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba, + 0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba, + 0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x193, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x194, 0x7a7: 0x7b, + 0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba, + 0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba, + 0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba, + // Block 0x1f, offset 0x7c0 + 0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07, + 0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17, + 0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07, + 0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c, + 0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b, + 0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b, + // Block 0x20, offset 0x800 + 0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b, + 0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b, + 0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b, + 0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b, + 0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b, + 0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b, + 0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b, + 0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b, + // Block 0x21, offset 0x840 + 0x840: 0x195, 0x841: 0x196, 0x842: 0xba, 0x843: 0xba, 0x844: 0x197, 0x845: 0x197, 0x846: 0x197, 0x847: 0x198, + 0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba, + 0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba, + 0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba, + 0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba, + 0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba, + 0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba, + 0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba, + // Block 0x22, offset 0x880 + 0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b, + 0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b, + 0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b, + 0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b, + 0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b, + 0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b, + 0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b, + 0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, + 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, +} + +// idnaSparseOffset: 284 entries, 568 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x26c, 0x27d, 0x281, 0x28c, 0x290, 0x299, 0x2a1, 0x2a7, 0x2ac, 0x2af, 0x2b3, 0x2b9, 0x2bd, 0x2c1, 0x2c5, 0x2cb, 0x2d3, 0x2da, 0x2e5, 0x2ef, 0x2f3, 0x2f6, 0x2fc, 0x300, 0x302, 0x305, 0x307, 0x30a, 0x314, 0x317, 0x326, 0x32a, 0x32f, 0x332, 0x336, 0x33b, 0x340, 0x346, 0x352, 0x361, 0x367, 0x36b, 0x37a, 0x37f, 0x387, 0x391, 0x39c, 0x3a4, 0x3b5, 0x3be, 0x3ce, 0x3db, 0x3e5, 0x3ea, 0x3f7, 0x3fb, 0x400, 0x402, 0x406, 0x408, 0x40c, 0x415, 0x41b, 0x41f, 0x42f, 0x439, 0x43e, 0x441, 0x447, 0x44e, 0x453, 0x457, 0x45d, 0x462, 0x46b, 0x470, 0x476, 0x47d, 0x484, 0x48b, 0x48f, 0x494, 0x497, 0x49c, 0x4a8, 0x4ae, 0x4b3, 0x4ba, 0x4c2, 0x4c7, 0x4cb, 0x4db, 0x4e2, 0x4e6, 0x4ea, 0x4f1, 0x4f3, 0x4f6, 0x4f9, 0x4fd, 0x506, 0x50a, 0x512, 0x51a, 0x51e, 0x524, 0x52d, 0x539, 0x540, 0x549, 0x553, 0x55a, 0x568, 0x575, 0x582, 0x58b, 0x58f, 0x59f, 0x5a7, 0x5b2, 0x5bb, 0x5c1, 0x5c9, 0x5d2, 0x5dd, 0x5e0, 0x5ec, 0x5f5, 0x5f8, 0x5fd, 0x602, 0x60f, 0x61a, 0x623, 0x62d, 0x630, 0x63a, 0x643, 0x64f, 0x65c, 0x669, 0x677, 0x67e, 0x682, 0x685, 0x68a, 0x68d, 0x692, 0x695, 0x69c, 0x6a3, 0x6a7, 0x6b2, 0x6b5, 0x6b8, 0x6bb, 0x6c1, 0x6c7, 0x6cd, 0x6d0, 0x6d3, 0x6d6, 0x6dd, 0x6e0, 0x6e5, 0x6ef, 0x6f2, 0x6f6, 0x705, 0x711, 0x715, 0x71a, 0x71e, 0x723, 0x727, 0x72c, 0x735, 0x740, 0x746, 0x74c, 0x752, 0x758, 0x761, 0x764, 0x767, 0x76b, 0x76f, 0x773, 0x779, 0x77f, 0x784, 0x787, 0x797, 0x79e, 0x7a1, 0x7a6, 0x7aa, 0x7b0, 0x7b5, 0x7b9, 0x7bf, 0x7c5, 0x7c9, 0x7d2, 0x7d7, 0x7da, 0x7dd, 0x7e1, 0x7e5, 0x7e8, 0x7f8, 0x809, 0x80e, 0x810, 0x812} + +// idnaSparseValues: 2069 entries, 8276 bytes +var idnaSparseValues = [2069]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x0259, lo: 0xb2, hi: 0xb2}, + {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x0279, lo: 0xb7, hi: 0xb7}, + {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x06}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x6, offset 0x33 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3e + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xae}, + {value: 0x0808, lo: 0xaf, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4a + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4e + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5d + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x62 + {value: 0x0000, lo: 0x09}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbf}, + // Block 0xc, offset 0x6c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x78 + {value: 0x0000, lo: 0x0d}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0a08, lo: 0xa0, hi: 0xa9}, + {value: 0x0c08, lo: 0xaa, hi: 0xac}, + {value: 0x0808, lo: 0xad, hi: 0xad}, + {value: 0x0c08, lo: 0xae, hi: 0xae}, + {value: 0x0a08, lo: 0xaf, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb2}, + {value: 0x0a08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xe, offset 0x86 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xf, offset 0x8b + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x10, offset 0x94 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x11, offset 0xa4 + {value: 0x0000, lo: 0x0d}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb2 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbe + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x14, offset 0xca + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x15, offset 0xdb + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x16, offset 0xe5 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x17, offset 0xec + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0961, lo: 0x9c, hi: 0x9c}, + {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x18, offset 0xf9 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x19, offset 0x10a + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x1a, offset 0x111 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1b, offset 0x11c + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1c, offset 0x12b + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1d, offset 0x139 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0x143 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1f, offset 0x145 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x20, offset 0x14a + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x21, offset 0x14d + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x22, offset 0x150 + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x23, offset 0x152 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x24, offset 0x15e + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x25, offset 0x169 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x171 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x27, offset 0x177 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x28, offset 0x17d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x29, offset 0x182 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x2a, offset 0x187 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2b, offset 0x18a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2c, offset 0x18e + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2d, offset 0x194 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2e, offset 0x199 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2f, offset 0x1a5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x30, offset 0x1af + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x31, offset 0x1b5 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x32, offset 0x1c6 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x33, offset 0x1d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x34, offset 0x1d3 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x35, offset 0x1db + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x36, offset 0x1de + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x37, offset 0x1eb + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x38, offset 0x1f3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x39, offset 0x1f7 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x3a, offset 0x1fe + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3b, offset 0x206 + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x216 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x222 + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x3e, offset 0x224 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3f, offset 0x22e + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x40, offset 0x23a + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x41, offset 0x246 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x42, offset 0x252 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x43, offset 0x25a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x44, offset 0x25f + {value: 0x0000, lo: 0x0c}, + {value: 0x0e29, lo: 0x80, hi: 0x80}, + {value: 0x0e41, lo: 0x81, hi: 0x81}, + {value: 0x0e59, lo: 0x82, hi: 0x82}, + {value: 0x0e71, lo: 0x83, hi: 0x83}, + {value: 0x0e89, lo: 0x84, hi: 0x85}, + {value: 0x0ea1, lo: 0x86, hi: 0x86}, + {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x059d, lo: 0x90, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x059d, lo: 0xbd, hi: 0xbf}, + // Block 0x45, offset 0x26c + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x46, offset 0x27d + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x47, offset 0x281 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x48, offset 0x28c + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x290 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x4a, offset 0x299 + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x24f1, lo: 0xac, hi: 0xac}, + {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x2579, lo: 0xaf, hi: 0xaf}, + {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x4b, offset 0x2a1 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4c, offset 0x2a7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09dd, lo: 0xa9, hi: 0xa9}, + {value: 0x09fd, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4d, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4e, offset 0x2af + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4f, offset 0x2b3 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, + {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x50, offset 0x2b9 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x51, offset 0x2bd + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x52, offset 0x2c1 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0xbf}, + // Block 0x53, offset 0x2c5 + {value: 0x0000, lo: 0x05}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ebd, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x54, offset 0x2cb + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x55, offset 0x2d3 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x56, offset 0x2da + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x57, offset 0x2e5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x58, offset 0x2ef + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x59, offset 0x2f3 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0x5a, offset 0x2f6 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0ef5, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x5b, offset 0x2fc + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0f15, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5c, offset 0x300 + {value: 0x0020, lo: 0x01}, + {value: 0x0f35, lo: 0x80, hi: 0xbf}, + // Block 0x5d, offset 0x302 + {value: 0x0020, lo: 0x02}, + {value: 0x1735, lo: 0x80, hi: 0x8f}, + {value: 0x1915, lo: 0x90, hi: 0xbf}, + // Block 0x5e, offset 0x305 + {value: 0x0020, lo: 0x01}, + {value: 0x1f15, lo: 0x80, hi: 0xbf}, + // Block 0x5f, offset 0x307 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x60, offset 0x30a + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x29e2, lo: 0x9b, hi: 0x9b}, + {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x61, offset 0x314 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + // Block 0x62, offset 0x317 + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb0}, + {value: 0x2a35, lo: 0xb1, hi: 0xb1}, + {value: 0x2a55, lo: 0xb2, hi: 0xb2}, + {value: 0x2a75, lo: 0xb3, hi: 0xb3}, + {value: 0x2a95, lo: 0xb4, hi: 0xb4}, + {value: 0x2a75, lo: 0xb5, hi: 0xb5}, + {value: 0x2ab5, lo: 0xb6, hi: 0xb6}, + {value: 0x2ad5, lo: 0xb7, hi: 0xb7}, + {value: 0x2af5, lo: 0xb8, hi: 0xb9}, + {value: 0x2b15, lo: 0xba, hi: 0xbb}, + {value: 0x2b35, lo: 0xbc, hi: 0xbd}, + {value: 0x2b15, lo: 0xbe, hi: 0xbf}, + // Block 0x63, offset 0x326 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x64, offset 0x32a + {value: 0x0030, lo: 0x04}, + {value: 0x2aa2, lo: 0x80, hi: 0x9d}, + {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x30a2, lo: 0xa0, hi: 0xbf}, + // Block 0x65, offset 0x32f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x66, offset 0x332 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x67, offset 0x336 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x68, offset 0x33b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x69, offset 0x340 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6a, offset 0x346 + {value: 0x0000, lo: 0x0b}, + {value: 0x0040, lo: 0x80, hi: 0x81}, + {value: 0xe00d, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x83}, + {value: 0x03f5, lo: 0x84, hi: 0x84}, + {value: 0x1329, lo: 0x85, hi: 0x85}, + {value: 0x447d, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xb7}, + {value: 0x2009, lo: 0xb8, hi: 0xb8}, + {value: 0x6e89, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xbf}, + // Block 0x6b, offset 0x352 + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6c, offset 0x361 + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6d, offset 0x367 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6e, offset 0x36b + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x6f, offset 0x37a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x70, offset 0x37f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x71, offset 0x387 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x72, offset 0x391 + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x73, offset 0x39c + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x74, offset 0x3a4 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x75, offset 0x3b5 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x76, offset 0x3be + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x77, offset 0x3ce + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x78, offset 0x3db + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x449d, lo: 0x9c, hi: 0x9c}, + {value: 0x44b5, lo: 0x9d, hi: 0x9d}, + {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x44cd, lo: 0xb0, hi: 0xbf}, + // Block 0x79, offset 0x3e5 + {value: 0x0000, lo: 0x04}, + {value: 0x44ed, lo: 0x80, hi: 0x8f}, + {value: 0x450d, lo: 0x90, hi: 0x9f}, + {value: 0x452d, lo: 0xa0, hi: 0xaf}, + {value: 0x450d, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3ea + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x7b, offset 0x3f7 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7c, offset 0x3fb + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7d, offset 0x400 + {value: 0x0020, lo: 0x01}, + {value: 0x454d, lo: 0x80, hi: 0xbf}, + // Block 0x7e, offset 0x402 + {value: 0x0020, lo: 0x03}, + {value: 0x4d4d, lo: 0x80, hi: 0x94}, + {value: 0x4b0d, lo: 0x95, hi: 0x95}, + {value: 0x4fed, lo: 0x96, hi: 0xbf}, + // Block 0x7f, offset 0x406 + {value: 0x0020, lo: 0x01}, + {value: 0x552d, lo: 0x80, hi: 0xbf}, + // Block 0x80, offset 0x408 + {value: 0x0020, lo: 0x03}, + {value: 0x5d2d, lo: 0x80, hi: 0x84}, + {value: 0x568d, lo: 0x85, hi: 0x85}, + {value: 0x5dcd, lo: 0x86, hi: 0xbf}, + // Block 0x81, offset 0x40c + {value: 0x0020, lo: 0x08}, + {value: 0x6b8d, lo: 0x80, hi: 0x8f}, + {value: 0x6d4d, lo: 0x90, hi: 0x90}, + {value: 0x6d8d, lo: 0x91, hi: 0xab}, + {value: 0x6ea1, lo: 0xac, hi: 0xac}, + {value: 0x70ed, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x710d, lo: 0xb0, hi: 0xbf}, + // Block 0x82, offset 0x415 + {value: 0x0020, lo: 0x05}, + {value: 0x730d, lo: 0x80, hi: 0xad}, + {value: 0x656d, lo: 0xae, hi: 0xae}, + {value: 0x78cd, lo: 0xaf, hi: 0xb5}, + {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, + {value: 0x79ad, lo: 0xb7, hi: 0xbf}, + // Block 0x83, offset 0x41b + {value: 0x0028, lo: 0x03}, + {value: 0x7c21, lo: 0x80, hi: 0x82}, + {value: 0x7be1, lo: 0x83, hi: 0x83}, + {value: 0x7c99, lo: 0x84, hi: 0xbf}, + // Block 0x84, offset 0x41f + {value: 0x0038, lo: 0x0f}, + {value: 0x9db1, lo: 0x80, hi: 0x83}, + {value: 0x9e59, lo: 0x84, hi: 0x85}, + {value: 0x9e91, lo: 0x86, hi: 0x87}, + {value: 0x9ec9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0xa089, lo: 0x92, hi: 0x97}, + {value: 0xa1a1, lo: 0x98, hi: 0x9c}, + {value: 0xa281, lo: 0x9d, hi: 0xb3}, + {value: 0x9d41, lo: 0xb4, hi: 0xb4}, + {value: 0x9db1, lo: 0xb5, hi: 0xb5}, + {value: 0xa789, lo: 0xb6, hi: 0xbb}, + {value: 0xa869, lo: 0xbc, hi: 0xbc}, + {value: 0xa7f9, lo: 0xbd, hi: 0xbd}, + {value: 0xa8d9, lo: 0xbe, hi: 0xbf}, + // Block 0x85, offset 0x42f + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x86, offset 0x439 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x87, offset 0x43e + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x88, offset 0x441 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x89, offset 0x447 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x8a, offset 0x44e + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8b, offset 0x453 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8c, offset 0x457 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8d, offset 0x45d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8e, offset 0x462 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x8f, offset 0x46b + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x90, offset 0x470 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x91, offset 0x476 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8b0d, lo: 0x98, hi: 0x9f}, + {value: 0x8b25, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x92, offset 0x47d + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8b25, lo: 0xb0, hi: 0xb7}, + {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, + // Block 0x93, offset 0x484 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x94, offset 0x48b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x95, offset 0x48f + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xae}, + {value: 0x0018, lo: 0xaf, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x96, offset 0x494 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x97, offset 0x497 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x98, offset 0x49c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x99, offset 0x4a8 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x9a, offset 0x4ae + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x9b, offset 0x4b3 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9c, offset 0x4ba + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9d, offset 0x4c2 + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9e, offset 0x4c7 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0x9f, offset 0x4cb + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xa0, offset 0x4db + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0xa1, offset 0x4e2 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa2, offset 0x4e6 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa3, offset 0x4ea + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa4, offset 0x4f1 + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa5, offset 0x4f3 + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa6, offset 0x4f6 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa7, offset 0x4f9 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa8, offset 0x4fd + {value: 0x0000, lo: 0x08}, + {value: 0x0908, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0xa1}, + {value: 0x0c08, lo: 0xa2, hi: 0xa2}, + {value: 0x0a08, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xa9, offset 0x506 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xaa, offset 0x50a + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0xa6}, + {value: 0x0808, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb3}, + {value: 0x0a08, lo: 0xb4, hi: 0xbf}, + // Block 0xab, offset 0x512 + {value: 0x0000, lo: 0x07}, + {value: 0x0a08, lo: 0x80, hi: 0x84}, + {value: 0x0808, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x90}, + {value: 0x0a18, lo: 0x91, hi: 0x93}, + {value: 0x0c18, lo: 0x94, hi: 0x94}, + {value: 0x0818, lo: 0x95, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xac, offset 0x51a + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xad, offset 0x51e + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xae, offset 0x524 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xaf, offset 0x52d + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xb0, offset 0x539 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb1, offset 0x540 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb2, offset 0x549 + {value: 0x0000, lo: 0x09}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb3, offset 0x553 + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb4, offset 0x55a + {value: 0x0000, lo: 0x0d}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb5, offset 0x568 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xb6, offset 0x575 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb7, offset 0x582 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb8, offset 0x58b + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xb9, offset 0x58f + {value: 0x0000, lo: 0x0f}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xba, offset 0x59f + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xbb, offset 0x5a7 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbc, offset 0x5b2 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbd, offset 0x5bb + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xbe, offset 0x5c1 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbf, offset 0x5c9 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xc0, offset 0x5d2 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xc1, offset 0x5dd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc2, offset 0x5e0 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc3, offset 0x5ec + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xc4, offset 0x5f5 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc5, offset 0x5f8 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc6, offset 0x5fd + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xc7, offset 0x602 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x99}, + {value: 0x3308, lo: 0x9a, hi: 0x9b}, + {value: 0x3008, lo: 0x9c, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xbf}, + // Block 0xc8, offset 0x60f + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xc9, offset 0x61a + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xca, offset 0x623 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xbf}, + // Block 0xcb, offset 0x62d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xcc, offset 0x630 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xcd, offset 0x63a + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xce, offset 0x643 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xcf, offset 0x64f + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xd0, offset 0x65c + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xd1, offset 0x669 + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x3008, lo: 0x93, hi: 0x94}, + {value: 0x3308, lo: 0x95, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x96}, + {value: 0x3b08, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xbf}, + // Block 0xd2, offset 0x677 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd3, offset 0x67e + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xd4, offset 0x682 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xd5, offset 0x685 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xd6, offset 0x68a + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xd7, offset 0x68d + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0340, lo: 0xb0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd8, offset 0x692 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xd9, offset 0x695 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xda, offset 0x69c + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xdb, offset 0x6a3 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xdc, offset 0x6a7 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xdd, offset 0x6b2 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xde, offset 0x6b5 + {value: 0x0000, lo: 0x02}, + {value: 0xe105, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xdf, offset 0x6b8 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0xe0, offset 0x6bb + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbf}, + // Block 0xe1, offset 0x6c1 + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xe2, offset 0x6c7 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xe3, offset 0x6cd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xe4, offset 0x6d0 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xe5, offset 0x6d3 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xbf}, + // Block 0xe6, offset 0x6d6 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0xa3}, + {value: 0x0008, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xe7, offset 0x6dd + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xe8, offset 0x6e0 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xe9, offset 0x6e5 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xea, offset 0x6ef + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xeb, offset 0x6f2 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xec, offset 0x6f6 + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0xb5b9, lo: 0x9e, hi: 0x9e}, + {value: 0xb601, lo: 0x9f, hi: 0x9f}, + {value: 0xb649, lo: 0xa0, hi: 0xa0}, + {value: 0xb6b1, lo: 0xa1, hi: 0xa1}, + {value: 0xb719, lo: 0xa2, hi: 0xa2}, + {value: 0xb781, lo: 0xa3, hi: 0xa3}, + {value: 0xb7e9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xed, offset 0x705 + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0xb851, lo: 0xbb, hi: 0xbb}, + {value: 0xb899, lo: 0xbc, hi: 0xbc}, + {value: 0xb8e1, lo: 0xbd, hi: 0xbd}, + {value: 0xb949, lo: 0xbe, hi: 0xbe}, + {value: 0xb9b1, lo: 0xbf, hi: 0xbf}, + // Block 0xee, offset 0x711 + {value: 0x0000, lo: 0x03}, + {value: 0xba19, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xbf}, + // Block 0xef, offset 0x715 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0xf0, offset 0x71a + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0xf1, offset 0x71e + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xf2, offset 0x723 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0xf3, offset 0x727 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0xf4, offset 0x72c + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0xf5, offset 0x735 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xf6, offset 0x740 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xf7, offset 0x746 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xf8, offset 0x74c + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xf9, offset 0x752 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0xfa, offset 0x758 + {value: 0x0000, lo: 0x08}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0b08, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xfb, offset 0x761 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xb0}, + {value: 0x0818, lo: 0xb1, hi: 0xbf}, + // Block 0xfc, offset 0x764 + {value: 0x0000, lo: 0x02}, + {value: 0x0818, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xfd, offset 0x767 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0818, lo: 0x81, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0xfe, offset 0x76b + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xff, offset 0x76f + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x100, offset 0x773 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x101, offset 0x779 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x102, offset 0x77f + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0xc1d9, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0x103, offset 0x784 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0x104, offset 0x787 + {value: 0x0000, lo: 0x0f}, + {value: 0xc801, lo: 0x80, hi: 0x80}, + {value: 0xc851, lo: 0x81, hi: 0x81}, + {value: 0xc8a1, lo: 0x82, hi: 0x82}, + {value: 0xc8f1, lo: 0x83, hi: 0x83}, + {value: 0xc941, lo: 0x84, hi: 0x84}, + {value: 0xc991, lo: 0x85, hi: 0x85}, + {value: 0xc9e1, lo: 0x86, hi: 0x86}, + {value: 0xca31, lo: 0x87, hi: 0x87}, + {value: 0xca81, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0xcad1, lo: 0x90, hi: 0x90}, + {value: 0xcaf1, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0x105, offset 0x797 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x106, offset 0x79e + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x107, offset 0x7a1 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x108, offset 0x7a6 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x109, offset 0x7aa + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x10a, offset 0x7b0 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x10b, offset 0x7b5 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x10c, offset 0x7b9 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0018, lo: 0xb3, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0x10d, offset 0x7bf + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xa4}, + {value: 0x0018, lo: 0xa5, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xbf}, + // Block 0x10e, offset 0x7c5 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x10f, offset 0x7c9 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x110, offset 0x7d2 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x111, offset 0x7d7 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x112, offset 0x7da + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x113, offset 0x7dd + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x114, offset 0x7e1 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x115, offset 0x7e5 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x116, offset 0x7e8 + {value: 0x0020, lo: 0x0f}, + {value: 0xded1, lo: 0x80, hi: 0x89}, + {value: 0x8e35, lo: 0x8a, hi: 0x8a}, + {value: 0xe011, lo: 0x8b, hi: 0x9c}, + {value: 0x8e55, lo: 0x9d, hi: 0x9d}, + {value: 0xe251, lo: 0x9e, hi: 0xa2}, + {value: 0x8e75, lo: 0xa3, hi: 0xa3}, + {value: 0xe2f1, lo: 0xa4, hi: 0xab}, + {value: 0x7f0d, lo: 0xac, hi: 0xac}, + {value: 0xe3f1, lo: 0xad, hi: 0xaf}, + {value: 0x8e95, lo: 0xb0, hi: 0xb0}, + {value: 0xe451, lo: 0xb1, hi: 0xb6}, + {value: 0x8eb5, lo: 0xb7, hi: 0xb9}, + {value: 0xe511, lo: 0xba, hi: 0xba}, + {value: 0x8f15, lo: 0xbb, hi: 0xbb}, + {value: 0xe531, lo: 0xbc, hi: 0xbf}, + // Block 0x117, offset 0x7f8 + {value: 0x0020, lo: 0x10}, + {value: 0x93b5, lo: 0x80, hi: 0x80}, + {value: 0xf0b1, lo: 0x81, hi: 0x86}, + {value: 0x93d5, lo: 0x87, hi: 0x8a}, + {value: 0xda11, lo: 0x8b, hi: 0x8b}, + {value: 0xf171, lo: 0x8c, hi: 0x96}, + {value: 0x9455, lo: 0x97, hi: 0x97}, + {value: 0xf2d1, lo: 0x98, hi: 0xa3}, + {value: 0x9475, lo: 0xa4, hi: 0xa6}, + {value: 0xf451, lo: 0xa7, hi: 0xaa}, + {value: 0x94d5, lo: 0xab, hi: 0xab}, + {value: 0xf4d1, lo: 0xac, hi: 0xac}, + {value: 0x94f5, lo: 0xad, hi: 0xad}, + {value: 0xf4f1, lo: 0xae, hi: 0xaf}, + {value: 0x9515, lo: 0xb0, hi: 0xb1}, + {value: 0xf531, lo: 0xb2, hi: 0xbe}, + {value: 0x2040, lo: 0xbf, hi: 0xbf}, + // Block 0x118, offset 0x809 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x119, offset 0x80e + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x11a, offset 0x810 + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x11b, offset 0x812 + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 42780 bytes (41KiB); checksum: 29936AB9 diff --git a/vendor/golang.org/x/net/publicsuffix/table.go b/vendor/golang.org/x/net/publicsuffix/table.go index c1347ced4..8eb0495ed 100644 --- a/vendor/golang.org/x/net/publicsuffix/table.go +++ b/vendor/golang.org/x/net/publicsuffix/table.go @@ -2,7 +2,7 @@ package publicsuffix -const version = "publicsuffix.org's public_suffix_list.dat, git revision 6f03f42a65d006c8ae657f125f14fb8f9d3337f4 (2019-05-31T16:38:49Z)" +const version = "publicsuffix.org's public_suffix_list.dat, git revision 41cb01612341c7ce3bcdd0cc4e696ae9f6416600 (2019-11-08T08:48:39Z)" const ( nodesBitsChildren = 10 @@ -23,486 +23,487 @@ const ( ) // numTLD is the number of top level domains. -const numTLD = 1539 +const numTLD = 1538 // Text is the combined text of all labels. -const text = "9guacuiababia-goracleaningroks-theatree164-baltimore-og-romsdali" + - "payboltateshinanomachimkentateyamagrocerybnikeisenbahnatuurweten" + - "schappenaumburggfarmerseineastcoastaldefenceatonsbergjemnes3-ap-" + - "southeast-2ix4432-balsfjordd-dnsiskinkyotobetsulikes-piedmontice" + - "llodingenaturhistorisches3-ap-south-16-b-datainaioirasebastopolo" + - "gyeongnamegawakembuchikumagayagawakkanaibetsubamericanfamilydscl" + - "oudeitychyattorneyagawakayamadridvagsoyereplanetariumemsettsuppo" + - "rtashkentatamotors3-ap-northeast-2038bloxcms3-website-us-east-1b" + - "luedancebmoattachments3-website-us-west-1bms3-website-us-west-2b" + - "mwegroweibolognagasakimobetsuitaipeiheijindianmarketinglitchasel" + - "jeepsongdalenviknagatorockartuzyuzawabnpparibaselburgliwicebnrwe" + - "irbomloabathsbcatholicaxiashorokanaiebondray-dnsupdaternopilawat" + - "ches5ybonnishiharabookinghostfoldnavyboomlahppiacenzachpomorskie" + - "nishiizunazukindigenaklodzkochikushinonsenergyboschaefflerdalimi" + - "tedrayddnsfreebox-osascoli-picenordre-landraydnsakyotanabellunor" + - "d-aurdalvdalaskanittedallasalleangaviikaascolipicenoduminamidait" + - "omandalimoldeloittemp-dnsalangenishikatakazakindustriabostikarel" + - "iancebostonakijinsekikogentinglobalashovhachinohedmarkariyamelbo" + - "urnebotanicalgardenishikatsuragit-reposalondonetskarlsoybotanicg" + - "ardenishikawazukamisunagawabotanybouncemerckmsdnipropetrovskjerv" + - "oyagebounty-fullensakerrypropertiesaltdalinkyard-cloudnsaludrive" + - "fsnillfjordrobaknoluoktagajobojindustriesteamfamberkeleyboutique" + - "becheltenham-radio-openairbusantiquest-a-la-maisondre-landroidru" + - "dunsalvadordalibabalestrandabergamo-siemensncfdupontariodejaneir" + - "odoybozen-sudtirolivornobozen-suedtirolombardynaliaskimitsubatam" + - "ibugattiffanynysadoes-itvedestrandurbanamexnetlifyinfinitintuitj" + - "omemorialomzaporizhzhegurinuyamashinatsukigatakasakitchenishimer" + - "abplacedogawarabikomaezakirunorddalondrinamsskoganeinvestmentsal" + - "zburgloboavistaprintelligencebrandywinevalleybrasiliabrindisiben" + - "ikinderoybristoloseyouriparliamentjxfinitybritishcolumbialowieza" + - "ganquanpachigasakievennodesabaerobaticketsamegawabroadcastlecler" + - "chernihivgubananarepublicasadelamonedatingjesdalavangenayorovnoc" + - "eanographics3-fips-us-gov-west-1broadwaybroke-itkmaxxjavald-aost" + - "aplesamnangerbrokerbronnoysundurhamburglogowfarmsteadweberbrothe" + - "rmesaverdealstahaugesunderseaportsinfolldalorenskogloppenzaolbia" + - "-tempio-olbiatempioolbialystokkepnogataijinzais-a-candidatebrows" + - "ersafetymarketsampalacebrumunddalotenkawabrunelasticbeanstalkarm" + - "oybrusselsamsclubartowhalinglugmbhartipscbgminakamichiharabruxel" + - "lesamsungmodalenishinomiyashironobryansklepparmattelefonicarboni" + - "a-iglesias-carboniaiglesiascarboniabrynewjerseybuskerudinewportl" + - "ligatksatxn--0trq7p7nnishinoomotegobuzentsujiiebuzzlgmxn--11b4c3" + - "dynathomebuiltmparochernigovernmentoyosatoyokawabwhoswhokksundyn" + - "dns-at-homedepotenzamamidsundyndns-at-workisboringrimstadyndns-b" + - "logdnsandnessjoenishinoshimatsuurabzhitomirumalatvuopmicrolighti" + - "ngripebzzparsandoycolognexus-2colonialwilliamsburgrongausdalucan" + - "iacoloradoplateaudiocolumbusheycommunecommunitycomoarekecomparem" + - "arkerryhotelsaobernardocompute-1computerhistoryofscience-fiction" + - "comsecuritytacticsaogoncartiercondoshichinohealth-carereforminam" + - "iiselectraniandriabarlettatraniandriaconferenceconstructionconsu" + - "ladonnakamagayahabaghdadyndns-wikirkenesaotomembersapporoconsult" + - "anthropologyconsultingrossetouchihayaakasakawaharacontactranoyco" + - "ntagematsubaracontemporaryarteducationalchikugodaddyn-vpndnsarde" + - "gnaroycontractorskenconventureshinodebalancertificationcookingch" + - "annelsdvrdnsfor-better-thanawatchandclockashiharacooluccapitalon" + - "ewspapercooperativano-frankivskolegallocus-3copenhagencyclopedic" + - "hiryukyuragifuchungbukharaumalborkarpaczeladzwiiheyakumoduminami" + - "echizenishiokoppegardyndns-freeboxosloftranakanojoetsuwanouchiku" + - "jogaszkolajollamericanexpressexycorsicafederationcorvettemasekas" + - "hiwaracosenzakopanecosidnshome-webserverdalucernecostumedio-camp" + - "idano-mediocampidanomediocouchpotatofriesardiniacouncilukowildli" + - "fedorainfraclouderacouponsarluroycq-acranbrookuwanalyticsarpsbor" + - "groundhandlingroznycrdyndns-workshoppingrpasadenarashinocreditca" + - "rdyndns1creditunioncremonashgabadaddjaguarqhachirogatakanezawacr" + - "ewilliamhillutskashiwazakiyosatokamachintaifun-dnsdojolstercrick" + - "etrzyncrimeast-kazakhstanangercrotonecrownipassagensarufutsunomi" + - "yawakasaikaitakoelncrsvpassenger-associationcruisesasayamacrypto" + - "nomichigangwoncuisinellair-traffic-controlleyculturalcentertainm" + - "entransportecuneocupcakecuritibahcavuotnagaivuotnagaokakyotambab" + - "yeniwaizumiotsukumiyamazonawsagaeroclubmedecincinnationwidealeri" + - "mo-i-ranaamesjevuemielno-ipifonychitachinakagawashtenawdev-myqna" + - "pcloudcontrolledekagaminogiftsandvikcoromantovalle-d-aostathelle" + - "cxn--12c1fe0bradescorporationcymrussiacyonabaruminamiizukamiokam" + - "eokameyamatotakadacyoutheworkpccwinbanzaicloudcontrolappleborkda" + - "lpha-myqnapcloud66ferrerotikagoshimalselvendrelluzernfetsundynse" + - "rvebbsaskatchewanfguitarsavannahgafhvalerfidoomdnstracefieldynuc" + - "onnectransurluxembourgruefigueresinstagingujohanamakinoharafilat" + - "eliafilegear-audnedalnfilegear-deatnurembergulenfilegear-gbizfil" + - "egear-iefilegear-jpmorganfilegear-sgunmaoris-a-financialadvisor-" + - "aurdalvivanovoldafilminamiminowafinalfinancefineartsaves-the-wha" + - "lessandria-trani-barletta-andriatranibarlettaandriafinlandynv6fi" + - "nnoyfirebaseapplinzis-a-geekasukabedzin-berlindasdaburfirenzefir" + - "estonefirmdalegokasells-itravelchannelfishingoldpoint2thisamitsu" + - "kefitjarvodkafjordynvpnplus-4fitnessettlementravelersinsurancefj" + - "alerflesberguovdageaidnulminamioguni5flickragerogersavonarusawaf" + - "lightsaxoflirfloginlinefloraflorencefloridattorelayfloripaderbor" + - "nfloristanohatakahamalvikasumigaurawa-mazowszextraspace-to-renta" + - "lstomakomaibaraflorokunohealthcareerschoenbrunnflowerschokokeksc" + - "hokoladenfltrdyroyrvikinguidegreeflynnhosting-clusterflynnhubarc" + - "laycards3-sa-east-1fndfor-ourfor-someeresistancefor-theaterforex" + - "rothadanorthwesternmutualforgotdnscholarshipschoolforli-cesena-f" + - "orlicesenaforlikescandyn53forsaleikangerforsandasuologoipatriafo" + - "rtalfortmissoulancashirecreationfortworthadselfipaviancarrdforum" + - "zfosneschulefotaris-a-greenfoxfordebianfozorafredrikstadtvschwar" + - "zgwangjuniperfreeddnsgeekgalaxyfreedesktopocznore-og-uvdalfreema" + - "sonryfreesitevadsoccertmgretakahashimamakirovogradoyfreetlschwei" + - "zfreiburgushikamifuranorth-kazakhstanfreightrentin-sud-tirolfres" + - "eniuscountryestateofdelawarezzoologyfribourgwiddleitungsenfriuli" + - "-v-giuliafriuli-ve-giuliafriuli-vegiuliafriuli-venezia-giuliafri" + - "uli-veneziagiuliafriuli-vgiuliafriuliv-giuliafriulive-giuliafriu" + - "livegiuliafriulivenezia-giuliafriuliveneziagiuliafriulivgiuliafr" + - "lfrogansciencecentersciencehistoryfrognfrolandfrom-akrehamnfrom-" + - "alfrom-arfrom-azimuthdfcbankasuyanagawafrom-capebretonamicrosoft" + - "bankaszubyfrom-codyn-o-saurlandescientistordalfrom-ctrentin-sudt" + - "irolfrom-dchitosetogitsuldalottefrom-dedyn-berlincolnfrom-flande" + - "rscjohnsonfrom-gaulardalfrom-hichisochildrensgardenfrom-iafrom-i" + - "dfrom-ilfrom-in-brbarclays3-us-east-2from-kscotlandfrom-kyowaria" + - "sahikawawindmillfrom-lancasterfrom-mamurogawafrom-mdfrom-meethno" + - "logyfrom-mifunefrom-mnfrom-mochizukiryuohdattowebcampinashikimin" + - "ohostre-totendofinternet-dnsaliasiafrom-mscrapper-sitefrom-mtnfr" + - "om-nctulanciafrom-ndfrom-nefrom-nh-serveblogsiteleafamilycompany" + - "minamisanrikubetsurfastly-terrariuminamimakis-a-designerfrom-nja" + - "worznoticiasnesoddenmarkhangelskjakdnepropetrovskiervaapsteierma" + - "rkatowicefrom-nminamitanefrom-nvalled-aostavangerfrom-nyfrom-ohk" + - "urafrom-oketogurafrom-orfrom-padovaksdalfrom-pratohmangolffanscr" + - "appingxn--12co0c3b4evalleaostaticscrysechocolatelemarkaruizawafr" + - "om-ris-a-gurulvikatsushikabeeldengeluidfrom-schmidtre-gauldalfro" + - "m-sdfrom-tnfrom-txn--1ck2e1barefootballfinanzgoraustraliaisondri" + - "obranconagawalbrzycharitysfjordds3-eu-west-1from-utazuerichardli" + - "llehammerfeste-ipfizerfrom-val-daostavalleyfrom-vtrentin-sued-ti" + - "rolfrom-wafrom-wielunnerfrom-wvalledaostavernfrom-wyfrosinonefro" + - "stalowa-wolawafroyahooguyfstcgroupgfoggiafujiiderafujikawaguchik" + - "onefujiminokamoenairlinedre-eikerfujinomiyadavvenjargap-northeas" + - "t-3fujiokayamangyshlakasamatsudovre-eikerfujisatoshonairportland" + - "-4-salernoboribetsuckserveminecraftrentin-suedtirolfujisawafujis" + - "hiroishidakabiratoridefensells-for-lesservemp3fujitsurugashimani" + - "wakuratexaskoyabearalvahkihokumakogengerdalcesurancechirealmpmnf" + - "ujixeroxn--1ctwolominamataobaomoriguchiharagusartservep2pharmaci" + - "enservepicservequakefujiyoshidavvesiidatsunanjoburgfukayabeatser" + - "vesarcasmatartanddesignfukuchiyamadazaifudaigodontexistmein-iser" + - "vebeerfukudominichofunatoriginstitutelevisionishitosashimizunami" + - "namibosogndalottokonamegatakatsukis-a-catererfukuis-a-hard-worke" + - "rservicesevastopolefukumitsubishigakisarazurecontainerdpolicefuk" + - "uokazakishiwadafukuroishikarikaturindalfukusakisofukushimannorfo" + - "lkebibleirfjordfukuyamagatakahatakaishimogosenfunabashiriuchinad" + - "afunagatakamatsukawafunahashikamiamakusatsumasendaisennangonohej" + - "is-a-hunterfundaciofuoiskujukuriyamansionsevenassisicilyfuosskoc" + - "zowindowsewinnersharis-a-knightpointtohobby-sitefurnitureggio-ca" + - "labriafurubirafurudonostiaafurukawairtelebitballooningfusodegaur" + - "afussaikisosakitagawafutabayamaguchinomigawafutboldlygoingnowher" + - "e-for-morenakatombetsumitakagiizefuttsurugimperiafuturecmsharpha" + - "rmacyshawaiijimarnardalfuturehostingfuturemailingfvgfylkesbiblac" + - "kbaudcdn77-securebungoonord-odalwaysdatabaseballangenoamishirasa" + - "tochigiessensiositelekommunikationionjukudoyamaintenanceofyresda" + - "lhangglidinghangoutsystemscloudyclusterhannanmokuizumodellinghan" + - "nosegawahanyuzenhapmirhareidsbergenharstadharvestcelebrationhasa" + - "marburghasaminami-alpshimojis-a-liberalhashbanghasudahasura-apph" + - "dhasvikatsuyamarylandhatogayaizuwakamatsubushikusakadogawahatoya" + - "mazakitakamiizumisanofidelityhatsukaichikaiseis-a-libertarianhat" + - "tfjelldalhayashimamotobungotakadapliernewmexicoalhazuminobusells" + - "yourhomegoodshimokawahelsinkitakatakaokalmykiahembygdsforbundhem" + - "neshimokitayamahemsedalhepforgeherokussldheroyhgtvallee-aosteroy" + - "higashiagatsumagoianiahigashichichibunkyonanaoshimageandsoundand" + - "visionhigashihiroshimanehigashiizumozakitakyushuaiahigashikagawa" + - "higashikagurasoedahigashikawakitaaikitamihamadahigashikurumeguro" + - "roshimonitayanagithubusercontentrentino-a-adigehigashimatsushima" + - "rcheapigeelvinckaufenhigashimatsuyamakitaakitadaitoigawahigashim" + - "urayamamotorcycleshimonosekikawahigashinarusembokukitamotosumy-g" + - "atewayhigashinehigashiomihachimanaustdalhigashiosakasayamanakako" + - "gawahigashishirakawamatakarazukaluganskypehigashisumiyoshikawami" + - "namiaikitanakagusukumodenakayamaritimodernhigashitsunoshiroomura" + - "higashiurausukitashiobarahigashiyamatokoriyamanashifteditchyouri" + - "philadelphiaareadmyblogspotrentino-aadigehigashiyodogawahigashiy" + - "oshinogaris-a-linux-useranishiaritabashijonawatehiraizumisatohno" + - "shoooshikamaishimodatehirakatashinagawahiranairtrafficplexus-1hi" + - "rarahiratsukagawahirayakagehistorichouseshimosuwalkis-a-llamarri" + - "ottrentino-alto-adigehitachiomiyagildeskaliszhitachiotagooglecod" + - "espotaruis-a-musicianhitraeumtgeradelmenhorstalbanshimotsukehjar" + - "tdalhjelmelandholeckobierzyceholidayhomeiphilatelyhomelinkitools" + - "ztynsettlershimotsumahomelinuxn--1lqs03nhomeofficehomesecurityma" + - "caparecidahomesecuritypchonanbulsan-suedtirolouvreisenishiwakis-" + - "a-celticsfanissandiegohomesenseminehomeunixn--1lqs71dhondahoneyw" + - "ellbeingzonehongoppdalhonjyoitakasagotembaixadahornindalhorseoul" + - "lensvanguardhorteneis-a-nascarfanhospitalhoteleshinichinanhotmai" + - "lhoyangerhoylandetroitskautokeinotteroyhumanitieshinjournalismai" + - "lillesandefjordhurdalhurumajis-a-nurservegame-serverhyllestadhyo" + - "goris-a-painteractivegaskvollhyugawarahyundaiwafuneis-very-sweet" + - "pepperis-with-thebandoisleofmanchesterjewelryjewishartgalleryjfk" + - "fhappounzenjgorajlljmphonefosshioyanaizuslivinghistoryjnjcphoeni" + - "xn--1qqw23ajoyentrentino-stiroljoyokaichibalatinoipirangamvikhak" + - "assiajpnjprshirahamatonbetsurnadaljurkoseis-a-photographerokuapp" + - "hilipsyno-dshinjukumanowtvallee-d-aosteigenkosherbrookegawakoshi" + - "mizumakiyosunndalkoshunantankharkovalleedaostekosugekotohiradoma" + - "insureggioemiliaromagnamsosnowiechoseiroumuenchenissayokkaichiro" + - "practichernivtsiciliakotourakouhokutamakizunokunimimatakatoris-a" + - "-playerkounosupplieshiranukamitsuekouyamashikekouzushimashikis-a" + - "-republicancerresearchaeologicaliforniakozagawakozakis-a-rocksta" + - "rachowicekozowioshiraois-a-socialistdlibestadkpnkppspdnshiraokam" + - "ogawakrasnikahokutokashikis-a-soxfankrasnodarkredstonekristiansa" + - "ndcatshiratakahagitlaborkristiansundkrodsheradkrokstadelvaldaost" + - "arnbergkryminamiuonumassa-carrara-massacarraramassabusinessebykl" + - "ecznagasukekumatorinokumejimasoykumenantokigawakunisakis-a-stude" + - "ntalkunitachiarailwaykunitomigusukumamotoyamashikokuchuokunneppu" + - "eblockbustermezkunstsammlungkunstunddesignkuokgroupictetrentino-" + - "sud-tirolkurehabmerkurgankurobelaudibleasingleshishikuis-a-teach" + - "erkassyncloudkurogiminamiashigarakuroisoftwarendalenugkuromatsun" + - "ais-a-techietis-a-patsfankurotakikawasakis-a-therapistoiakushiro" + - "gawakustanais-an-accountantshinkamigotoyohashimototalkusupplykut" + - "chanelkutnokuzumakis-an-actorkvafjordkvalsundkvamlidlugolekadena" + - "gahamaroygardenebakkeshibechambagriculturennebudejjuedischesapea" + - "kebayernuorochesterkvanangenkvinesdalkvinnheradkviteseidskogkvit" + - "soykwpspectruminamiyamashirokawanabelembetsukubankhersonkzmisugi" + - "tokorozawamitourismolangevagrigentomologyeonggiehtavuoatnadexete" + - "rmitoyoakemiuramiyazurewebsiteshikagamiishibukawamiyotamanomjond" + - "alenmlbfanmombetsurgeonshalloffamelhusdecorativeartshisuifuelver" + - "uminanomonstermontrealestatefarmequipmentrentino-sued-tirolmonza" + - "-brianzapposhitaramamonza-e-della-brianzaptokuyamatsumotofukemon" + - "zabrianzaramonzaebrianzamonzaedellabrianzamoonscalevangermoparac" + - "hutingmordoviamoriyamatsunomoriyoshiminamiawajikis-an-artistgory" + - "mormonmouthagakhanamigawamoroyamatsusakahoginankokubunjis-an-eng" + - "ineeringmortgagemoscowitdkhmelnitskiyamarylhurstjordalshalsenmos" + - "eushistorymosjoenmoskeneshizukuishimofusaitamatsukuris-an-entert" + - "ainermosshizuokanagawamosvikhmelnytskyivanylvenicemoteginowaniih" + - "amatamakawajimanxn--2scrj9choshibuyachtsanfranciscofreakunemuror" + - "angeiseiyoichippubetsubetsugarugbydgoszczecinemagentositecnologi" + - "amoviemovimientokyotangotsukitahatakamoriokakegawamovistargardmo" + - "zilla-iotrentino-suedtirolmtranbymuenstermuginozawaonsenmuikamis" + - "atokaizukamikitayamatsuris-bytomaritimekeepingmukodairamulhouser" + - "vehalflifestylewismillermunakatanemuncienciamuosattemupicturesho" + - "ujis-certifieducatorahimeshimamateramobaramurmanskhplaystationmu" + - "rotorcraftrentinoa-adigemusashimurayamatsushigemusashinoharamuse" + - "etrentinoaadigemuseumverenigingmusicargoboatshowamutsuzawamy-vig" + - "orgemy-wanggouvichoyodobashichikashukujitawaravennaharimalopolsk" + - "anlandyndns-homednsangomyactivedirectorymyasustor-elvdalmycdn77-" + - "sslattumincomcastresindevicenzaporizhzhiamydattolocalhistorymydd" + - "nskingmydissentrentinoalto-adigemydobisshikis-foundationmydroboe" + - "hringerikemydshowtimemergencyahikobeardubaiduckdnshriramsterdamn" + - "serverbaniamyeffectrentinoaltoadigemyfirewallonieruchomosciencea" + - "ndindustrynmyfritzmyftpaccessienarutolgamyhome-servermyjinomykol" + - "aivaomymailermymediapchristiansburgriwataraidyndns-ipartis-a-che" + - "farsundyndns-mailowiczest-le-patronissedalplfinancialpuserconten" + - "toyotapartsanjotoyotomiyazakis-a-conservativegarsheis-a-cpaduals" + - "tackhero-networkinggroupartymyokohamamatsudamypepiemontemypetsig" + - "dalmyphotoshibalena-devicesilklabudhabikinokawabarthaebaruericss" + - "onyoursidell-ogliastradermypiagetmyiphostrodawaramypsxn--30rr7ym" + - "ysecuritycamerakermyshopblocksimple-urlmytis-a-bookkeeperugiamyt" + - "uleapilotsirdalmyvnchristmasakindlefrakkestadyndns-office-on-the" + - "-webhopencraftoyotsukaidomywireitrentinos-tirolpiszpittsburghoff" + - "icialpiwatepixolinopizzapknx-serversailleshirakofuefukihaboromsk" + - "ogplantationplantsjcbnlplatformshangrilanslupskolobrzegersundpla" + - "zaplcube-serversicherungplumbingoplurinacionalpodhalezajskomagan" + - "epodlasiellaktyubinskiptveterinaireadthedocscappgafannefrankfurt" + - "rentinosud-tirolpodzonepohlpoivronpokerpokrovskomakiyosemitepoli" + - "ticarrierpolitiendapolkowicepoltavalle-aostarostwodzislawithgoog" + - "leapisa-hockeynutsiracusakatakkoebenhavnpomorzeszowithyoutubersp" + - "acekitagatamayufuettertdasnetzponpesaro-urbino-pesarourbinopesar" + - "omasvuotnaritakurashikis-goneponypordenonepornporsangerporsangug" + - "eporsgrunnanyokoshibahikariwanumatakinouepoznanpraxis-a-bruinsfa" + - "nprdpreservationpresidioprgmrprimeloyalistorageprincipeprivatize" + - "healthinsuranceprochowiceproductionslzprofesionalprogressivennes" + - "laskerrylogisticsnoasaitoshimayfirstockholmestrandpromomahachijo" + - "invilleksvikomatsushimasfjordenpropertyprotectionprotonetrentino" + - "sudtirolprudentialpruszkowiwatsukiyonotairestaurantrentinosued-t" + - "irolprvcyberlevagangaviikanonjis-into-animeiwamarshallstatebanka" + - "zoprzeworskogptplusgardenpupimientaketomisatomobellevuelosangele" + - "sjabbottrentinostirolpvhagebostadpvtrentinosuedtirolpwchromedici" + - "nakaiwamizawassamukawataricoharuovatoyourapzqldqponiatowadaqslin" + - "gquicksytestingquipelementsokananiimihoboleslawiechryslerqvchung" + - "namdalseidfjordyndns-picsannanisshingucciprianiigataishinomakink" + - "obayashikaoirmitakeharasuzakanazawasuzukaneyamazoesuzukis-into-g" + - "amessinazawasvalbardunloppacificircleverappsseljordyndns-webhost" + - "ingroks-thisayamanobeokakudamatsuesveiosvelvikomonowruzhgorodeos" + - "vizzerasvn-reposomnarviikamishihoronobeauxartsandcraftsolarssons" + - "wedenswidnicartoonartdecologiaswidnikkokaminokawanishiaizubanges" + - "wiebodzin-butterswiftcoverswinoujscienceandhistoryswissmartertha" + - "nyousrcfastpanelblagrarchaeologyeongbuk0emmafann-arboretumbriama" + - "llamaceiobbcg120001wwwebspace12hpalermoliserniabogadodgehirnrt3l" + - "3p0rtarnobrzegyptian4tarumizusawabruzzoologicalvinklein-addramme" + - "nuernbergdyniaetnabudapest-a-la-masion-webredirectmedicaltanisse" + - "ttachikawafflecellclaims3-ap-northeast-1337synology-diskstations" + - "ynology-dsootunesor-varangertunkomorotsukaminoyamaxunjargaturyst" + - "ykanmakiwientuscanytushuissier-justicetuvalle-daostatic-accessor" + - "foldtuxfamilytwmailvestfoldvestnesorocabalsan-sudtirollagdenesna" + - "aseralingenkainanaejrietisalatinabenonichurcharternidyndns-remot" + - "ewdyndns-serverisigniyodogawavestre-slidrepbodynamic-dnsorreisah" + - "ayakawakamiichikawamisatottoris-into-carshinshirovestre-totennis" + - "hiawakuravestvagoyvevelstadvibo-valentiavibovalentiavideovillaso" + - "rtlandvinnicasacamdvrcampinagrandebuilderschlesischesoruminiserv" + - "ervinnytsiavirginiavirtual-userveexchangevirtualservervirtualuse" + - "rveftpioneervirtueeldomein-vigorlicevirtuelvisakegawaviterboknow" + - "sitallvivolkenkundenvixn--32vp30haibarakitahiroshimapartmentshel" + - "laspeziavlaanderenvladikavkazimierz-dolnyvladimirvlogintoyonezaw" + - "avminnesotaketakayamasudavologdanskomvuxn--2m4a15evolvolkswagent" + - "soundcastronomy-routervolyngdalvoorloperauniterois-leetnedalvoss" + - "evangenvotevotingvotoyonownextdirectrentoyonakagyokutoyakokonoew" + - "orldworse-thandawowloclawekongsbergwpcomstagingwpdevcloudwritest" + - "hisblogsytewroclawmflabsouthcarolinarvikommunalforbundwtcmintern" + - "ationalfirearmshisognewtfastvps-serveronakasatsunairguardiannaka" + - "domarinebraskauniversitydalaheadjudaicable-modemocraciawuozustka" + - "nnamilanotogawawzmiuwajimaxn--3pxu8kongsvingerxn--42c2d9axn--45b" + - "r5cylxn--45brj9cistrondheimmobilienxn--45q11citadeliveryggeexn--" + - "4gbriminingxn--4it168dxn--4it797koninjambylxn--4pvxs4allxn--54b7" + - "fta0ccitichernovtsymantechnologyxn--55qw42gxn--55qx5dxn--5js045d" + - "xn--5rtp49civilaviationxn--5rtq34konskowolayangrouphotographysio" + - "xn--5su34j936bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6q" + - "q986b3xlxn--7t0a264civilisationxn--80adxhksouthwestfalenxn--80ao" + - "21axn--80aqecdr1axn--80asehdbarrell-of-knowledgeologyonagoyautom" + - "otiveconomiasakuchinotsuchiurakawalesundevelopmentattoobninskara" + - "coldwarmiastagebizenakanotoddenavuotnaples3-eu-west-2xn--80aswgx" + - "n--80augustownproviderxn--8ltr62konsulatrobeepilepsykkylvenetoei" + - "dsvollxn--8pvr4utwentexn--8y0a063axn--90a3academiamicaaarborteac" + - "hes-yogasawaracingxn--90aeroportalabamagasakishimabaraogakibichu" + - "oxn--90aishobarakawagoexn--90azhytomyravendbarsycenterprisesakik" + - "ugawalmartaxihuanflfanfshostrowwlkpmgjovikaragandautoscanadaegua" + - "mbulancehimejibmdgcagliaribeiraokinawashirosatochiokinoshimaizur" + - "uhreviewskrakoweddingjerstadotsuruokakamigaharaurskog-holandingj" + - "erdrumetacentrumeteorappalmaserati234lima-cityeatselinogradultat" + - "arantours3-ap-southeast-1kappchizip6xn--9dbhblg6dietcimdbarsyonl" + - "inewhampshirealtysnes3-us-gov-west-1xn--9dbq2axn--9et52uxn--9krt" + - "00axn--andy-iraxn--aroport-byandexn--3bst00misakis-an-actresshin" + - "shinotsurgeryxn--asky-iraxn--aurskog-hland-jnbashkiriaveroykengl" + - "andiscountyolasitempresashibetsukuiitatebayashiibajddarchitectur" + - "ealtorlandiscourses3-eu-west-3utilitiesquare7xn--avery-yuasakuho" + - "kkaidownloadxn--b-5gaxn--b4w605ferdxn--balsan-sdtirol-nsbsowaxn-" + - "-bck1b9a5dre4civilizationxn--bdddj-mrabdxn--bearalvhki-y4axn--be" + - "rlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nachikat" + - "suuraxn--bievt-0qa2xn--bjarky-fyaotsurreyxn--bjddar-ptargets-itr" + - "evisohughesopotrentinsud-tirolxn--blt-elabourxn--bmlo-graingerxn" + - "--bod-2natalxn--bozen-sdtirol-2obanazawaxn--brnny-wuacademy-fire" + - "wall-gatewayxn--brnnysund-m8accident-investigation-aptibleadpage" + - "st-mon-blogueurovision-rancherkasydneyxn--brum-voagatritonxn--bt" + - "sfjord-9zaxn--bulsan-sdtirol-nsbasicservercelliguriavocatanzarow" + - "edeployombolzano-altoadigemrevistanbulsan-sudtirolavagiskeu-1xn-" + +const text = "9guacuiababia-goracleaningroks-theatree12hpalermomahachijoinvill" + + "eksvik12ix4432-balsfjordd-dnsiskinkyotobetsulikes-piedmonticello" + + "dingenaturhistorisches3-ap-south-16-b-dataikikonaikawachinaganoh" + + "aramcoachampionshiphoptobishimadridvagsoyereportatarantours3-ap-" + + "northeast-2038bloombergbauerninomiyakonojorpelandiyusuharabloxcm" + + "s3-website-us-west-2bluedancebmoattachments5yusuisservehumourbms" + + "akyotanabellunord-aurdalvdalaskanittedallasalleangaviikaascolipi" + + "cenodumetlifeinsurancebmwedeployuu2-localhostoregontrailroadnpar" + + "isor-fronirasakindigenaklodzkochikushinonsenergyuzawabnrwegrowei" + + "bolognagasakimobetsuitainaioirasebastopologyeongnamegawakayamaga" + + "zineat-urlimitedrangedalimoliseoullensvanguardray-dnsupdaternopi" + + "lawatchesalangenishiazaindustriabomloabathsbcatholicaxiashorokan" + + "aiebondrayddnsfreebox-osascoli-picenordre-landraydnsalondonetska" + + "rlsoybonnishigobookinghostfoldnavyboomlahppiacenzachpomorskienis" + + "hiharaboschaefflerdalinkyard-cloudnsaltdalivornobostikarmoybosto" + + "nakijinsekikogentingloboavistanbulsan-sudtirolombardynaliaskimit" + + "subatamibugattiffanynysadoes-itvedestrandrivefsnillfjordrobaknol" + + "uoktachikawakembuchikumagayagawakkanaibetsubamericanfamilydsclou" + + "deitychyattorneyagawafflecellclaimsaludrudupontariodejaneirodoyb" + + "otanicalgardenishiizunazukindustriesteamfamberkeleybotanicgarden" + + "ishikatakazakinfinitintuitjxfinitybotanybouncemerckmsdnipropetro" + + "vskjervoyagebounty-fullensakerrypropertiesalvadordalibabalestran" + + "dabergamo-siemensncfdurbanamexnethnologyboutiquebecheltenham-rad" + + "io-openairbusantiquest-a-la-maisondre-landroidurhamburglogoweirb" + + "ozen-sudtirolomzaporizhzhegurinuyamashinatsukigatakasakitchenish" + + "ikatsuragit-reposalzburgloppenzaolbia-tempio-olbiatempioolbialys" + + "tokkepnogatagajobojinvestmentsamegawabozen-suedtirolondrinamssko" + + "ganeinzais-a-candidatebplacedogawarabikomaezakirunorddalorenskog" + + "lugmbhartipscbgminakamichiharabrandywinevalleybrasiliabrindisibe" + + "nikinderoybristoloseyouriparliamentkmaxxjavald-aostarostwodzisla" + + "wellbeingzonebritishcolumbialowiezaganquanpachigasakievennodesab" + + "aerobaticketsamnangerbroadcastleclerchernihivgubsampalacebroadwa" + + "ybroke-itksatxn--0trq7p7nnishikawazukamisunagawabrokerbronnoysun" + + "dweberbrothermesaverdealstahaugesunderseaportsinfolldalotenkawab" + + "rowsersafetymarketsamsclubartowfarmsteadynathomebuiltmparmattele" + + "fonicarbonia-iglesias-carboniaiglesiascarboniabrumunddalottebrun" + + "elasticbeanstalkarpaczeladzparochernigovernmentoyosatoyokawabrus" + + "selsamsungmodellingmxn--11b4c3dyndns-at-homedepotenzamamidsundyn" + + "dns-at-workisboringrimstadyndns-blogdnsandnessjoenishimerabruxel" + + "lesandoybryansklepparsandvikcoromantovalle-d-aostaticsanfrancisc" + + "ofreakunemurorangeiseiyoichippubetsubetsugarugbydgoszczecinemage" + + "ntositecnologiabrynewhollandyndns-freeboxosloftranakanojoetsuwan" + + "ouchikujogaszkolajollamericanexpressexybuskerudinewmexicoalottok" + + "onamegatakatsukis-a-catererbuzentsujiiebuzzwhalingripebwhoswhokk" + + "sundyndns-homednsangobzhitomirumalatvuopmicrolightingriwataraidy" + + "ndns-ipartis-a-celticsfanishinomiyashironobzzcolognexus-2colonia" + + "lwilliamsburgrongausdalukowiiheyakumoldeloittemp-dnsaogoncartier" + + "coloradoplateaudiocolumbusheycommunecommunitycomoarekecomparemar" + + "kerryhotelsaotomeloyalistoragecompute-1computerhistoryofscience-" + + "fictioncomsecuritytacticsapporocondoshichinohealth-carereformina" + + "miechizenconferenceconstructionconsuladonnakaiwamizawassamukawat" + + "aricoharuovatranoyconsultanthropologyconsultingrossetouchihayaak" + + "asakawaharacontactransportecontagematsubaracontemporaryarteducat" + + "ionalchikugodontexistmein-iservebeercontractorskenconventureshin" + + "odebalancertificationcookingchannelsdvrdnsfor-better-thanawatcha" + + "ndclockashiwaracooluroycooperativano-frankivskolegallocus-3copen" + + "hagencyclopedichiryukyuragifuchungbukharanzanishinoomotegocorsic" + + "afederationcorvettemasekashiwazakiyosatokamachintaifun-dnsdojols" + + "tercosenzakopanecosidnshome-webserverdalutskasukabedzin-berlinda" + + "sdaburcostumedicinakamagayahabaghdadyndns-workshopitsitevadsobet" + + "sumidatlantichitachinakagawashtenawdev-myqnapcloudcontrolledekag" + + "aminogiftsanjotoyotapartsannanishinoshimatsuuracouchpotatofriesa" + + "rdegnaroycounciluxurycouponsardiniacq-acranbrookuwanalyticsarluz" + + "erncrdyndns1creditcardynnsarpsborgroundhandlingroznycreditunionc" + + "remonashgabadaddjaguarqhachirogatakanezawacrewildlifedorainfracl" + + "ouderacricketrzyncrimeast-kazakhstanangercrotonecrownipasadenara" + + "shinocrsvpassagensarufutsunomiyawakasaikaitakoelncruisesasayamac" + + "ryptonomichigangwoncuisinellair-traffic-controlleyculturalcenter" + + "tainmentransurlvivanovoldacuneocupcakecuritibahcavuotnagaivuotna" + + "gaokakyotambabyeniwaizumiotsukumiyamazonawsagaeroclubmedecincinn" + + "ationwidealercxn--12c1fe0bradescorporationcymrussiacyonabarumina" + + "mifuranocyoutheworkpccwilliamhillferrerotikagoshimalvikasumigaur" + + "awa-mazowszextraspace-to-rentalstomakomaibarafetsundynuconnectra" + + "paniizafgruefhvalerfidoomdnstracefieldynv6figueresinstaginguideg" + + "reefilateliafilegear-audnedalnfilegear-deatnufcfanfilegear-gbizf" + + "ilegear-iefilegear-jpmorganfilegear-sguitarsavannahgafilminamiiz" + + "ukamiokameokameyamatotakadafinalfinancefineartsaves-the-whalessa" + + "ndria-trani-barletta-andriatranibarlettaandriafinlandynvpnplus-4" + + "finnoyfirebaseapplinzis-a-financialadvisor-aurdalfirenzefireston" + + "efirmdalegoldpoint2thisamitsukefishingolffansavonarusawafitjarvo" + + "dkafjordyroyrvikingrpassenger-associationfitnessettlementraveler" + + "sinsurancefjalerflesbergujohanamakinoharaflickragerogersaxofligh" + + "tschoenbrunnflirfloginlinefloraflorencefloridattorelayfloripader" + + "bornfloristanohatakaharulminamimakis-a-geekasuyanagawaflorokunoh" + + "ealthcareerschokokekschokoladenflowerscholarshipschoolschulefltr" + + "dflynnhosting-clusterflynnhubanzaicloudcontrolappleborkdalpha-my" + + "qnapcloud66fndfor-ourfor-somedizinhistorischeschwarzgwangjuniper" + + "for-theaterforexrothadanorthwesternmutualforgotdnschweizforli-ce" + + "sena-forlicesenaforlikescandyn53forsaleikangerforsandasuologoipa" + + "triafortalfortmissoulancashirecreationfortworthadselectrentin-su" + + "d-tirolforumzfosnesciencecentersciencehistoryfotaris-a-greenfoxf" + + "ordebianfozorafredrikstadtvscientistordalfreeddnsgeekgalaxyfreed" + + "esktopocznore-og-uvdalfreemasonryfreesitexaskoyabearalvahkihokum" + + "akogengerdalcesurancechirealmpmnfreetlscjohnsonfreiburgulenfreig" + + "htrentin-sudtirolfreseniuscountryestateofdelawareggio-calabriafr" + + "ibourgunmaoris-a-gurulvikaszubyfriuli-v-giuliafriuli-ve-giuliafr" + + "iuli-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-vgi" + + "uliafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-giu" + + "liafriuliveneziagiuliafriulivgiuliafrlfroganscotlandfrognfroland" + + "from-akrehamnfrom-alfrom-arfrom-azimuthdfcbankatowicefrom-capebr" + + "etonamicrosoftbankatsushikabeeldengeluidfrom-codyn-vpndnscrapper" + + "-sitefrom-ctrentin-sued-tirolfrom-dchitosetogakushimotoganewspap" + + "erfrom-dedyn-berlincolnfrom-flanderscrappinguovdageaidnunusualpe" + + "rsonfrom-gaulardalfrom-hichisochildrensgardenfrom-iafrom-idfrom-" + + "ilfrom-in-brbarcelonagareyamaizuruhrhcloudiscoveryombolzano-alto" + + "adigeu-3from-kscrysechocolatelemarkaruizawafrom-kyowariasahikawa" + + "winbarclaycards3-fips-us-gov-west-1from-lancasterfrom-mamurogawa" + + "from-mdfrom-meeresistancefrom-mifunefrom-mnfrom-modalenfrom-mser" + + "veirchofunatoriginstitutelevisionishiokoppegardyndns-mailouvreit" + + "oyotomiyazakis-a-chefarsundyndns-office-on-the-webhareidsbergeni" + + "shitosashimizunaminamibosogndalowiczest-le-patronishiwakis-a-con" + + "servativegarsheis-a-cpadualstackhero-networkinggroupartyfrom-mtn" + + "from-nctulanciafrom-ndfrom-nefrom-nh-serveblogsiteleafamilycompa" + + "nyminamiminowafrom-njaworznoticiasnesoddenmarkhangelskjakdneprop" + + "etrovskiervaapsteiermarkatsuyamarylandfrom-nminamioguni5from-nva" + + "lled-aostamayufuettertdasnetzfrom-nyfrom-ohkurafrom-oketogurafro" + + "m-orfrom-padovaksdalfrom-pratohmangonohejis-a-hard-workerservemi" + + "necraftrentin-suedtirolfrom-ris-a-hunterfrom-schmidtre-gauldalfr" + + "om-sdfrom-tnfrom-txn--12co0c3b4evalleaostavernfrom-utazuerichard" + + "lillehammerfeste-ipaviancarrdfrom-val-daostavalleyfrom-vtrentino" + + "-a-adigefrom-wafrom-wielunnerfrom-wvalledaostaobaomoriguchiharag" + + "usartservemp3from-wyfrosinonefrostalowa-wolawafroyahooguyfstcgro" + + "upfizerfujiiderafujikawaguchikonefujiminokamoenairlinedre-eikerf" + + "ujinomiyadavvenjargap-northeast-3fujiokayamangyshlakasamatsudovr" + + "e-eikerfujisatoshonairportland-4-salernoboribetsuckservep2pgfogg" + + "iafujisawafujishiroishidakabiratoridefenseljordfujitsurugashiman" + + "iwakuratextileirfjordfujixeroxn--1ck2e1barclays3-sa-east-1fujiyo" + + "shidavvesiidatsunanjoburgushikamifuranorth-kazakhstanfukayabeats" + + "ervepicservequakefukuchiyamadazaifudaigojomedio-campidano-medioc" + + "ampidanomediofukudominichonanbulsan-suedtirolpusercontentoyotsuk" + + "aidofukuis-a-knightpointtohobby-sitefukumitsubishigakisarazureco" + + "ntainerdpolicefukuokazakishiwadafukuroishikarikaturindalfukusaki" + + "sofukushimannorfolkebibleirvikaufenfukuyamagatakahatakaishimogos" + + "enfunabashiriuchinadafunagatakamatsukawafunahashikamiamakusatsum" + + "asendaisennangooglecodespotaruis-a-landscaperfundaciofuoiskujuku" + + "riyamansionservesarcasmatartanddesignfuosskoczowindmillfurniture" + + "ggio-emilia-romagnakatombetsumitakagiizefurubirafurudonostiaafur" + + "ukawairtelebitballooningwiddleitungsenfusodegaurafussaikisosakit" + + "agawafutabayamaguchinomigawafutboldlygoingnowhere-for-morenakats" + + "ugawafuttsurugimperiafuturecmservicesevastopolefuturehostingxn--" + + "1ctwolominamatargivestbytemarkautokeinotteroyfuturemailingfvgfyl" + + "kesbiblackbaudcdn77-securebungoonord-odalwaysdatabaseballangenka" + + "inanaejrietisalatinabenonichoseiroumuenchenissandiegofyresdalhan" + + "gglidinghangoutsystemscloudyclusterhannanmokuizumodenakayamarbur" + + "ghannosegawahanyuzenhapmirharstadharvestcelebrationhasamarcheapi" + + "geelvinckazoologyhasaminami-alpsewindowsharis-a-libertarianhashb" + + "anghasudahasura-appharmaciensharpharmacyshawaiijimarnardalhasvik" + + "azunow-dnshellaspeziahatogayaizuwakamatsubushikusakadogawahatoya" + + "mazakitakamiizumisanofidelityhatsukaichikaiseis-a-linux-useranis" + + "hiaritabashijonawatehattfjelldalhayashimamotobungotakadapliernew" + + "jerseyhazuminobusells-for-unzenhelsinkitakatakaokalmykiahembygds" + + "forbundhemneshimojis-a-llamarriottrentino-aadigehemsedalhepforge" + + "herokussldheroyhgtvallee-aosteroyhigashiagatsumagoianiahigashich" + + "ichibunkyonanaoshimageandsoundandvisionhigashihiroshimanehigashi" + + "izumozakitakyushuaiahigashikagawahigashikagurasoedahigashikawaki" + + "taaikitamihamadahigashikurumeetnedalhigashimatsushimaritimodernh" + + "igashimatsuyamakitaakitadaitoigawahigashimurayamamotorcycleshimo" + + "kawahigashinarusells-itrentino-alto-adigehigashinehigashiomihach" + + "imanaustdalhigashiosakasayamanakakogawahigashishirakawamatakaraz" + + "ukaluganskypehigashisumiyoshikawaminamiaikitamotosumy-gatewayhig" + + "ashitsunoshiroomurahigashiurausukitanakagusukumoduminamisanrikub" + + "etsurfastly-terrariuminamiiserniahigashiyamatokoriyamanashiftedi" + + "tchyouriphdhigashiyodogawahigashiyoshinogaris-a-musicianhiraizum" + + "isatohnoshoooshikamaishimodatehirakatashinagawahiranairtrafficpl" + + "exus-1hirarahiratsukagawahirayakagehistorichouseshimokitayamahit" + + "achiomiyagildeskaliszhitachiotagoppdalhitraeumtgeradelmenhorstal" + + "banshimonitayanagithubusercontentrentino-altoadigehjartdalhjelme" + + "landholeckobierzyceholidayhomeiphiladelphiaareadmyblogspotrentin" + + "o-s-tirolhomelinkitoolsztynsettlershimonosekikawahomelinuxn--1lq" + + "s03nhomeofficehomesecuritymacaparecidahomesecuritypchoshibuyacht" + + "sannohelplfinancialubindalublindesnesanokarumaifashionissayokkai" + + "chiropractichernivtsiciliahomesensellsyourhomegoodshimosuwalkis-" + + "a-nascarfanhomeunixn--1lqs71dhondahongotembaixadahonjyoitakasago" + + "tpantheonsitehornindalhorsembokukitashiobarahorteneis-a-nursemin" + + "ehospitalhoteleshimotsukehotmailhoyangerhoylandetroitskddielddan" + + "uorrikuzentakatajimidorissagamiharahumanitieshimotsumahurdalhuru" + + "majis-a-painteractivegaskvollhyllestadhyogoris-a-patsfanhyugawar" + + "ahyundaiwafuneis-very-sweetpepperis-with-thebandoisleofmancheste" + + "rjewelryjewishartgalleryjfkhakassiajgorajlljmphoenixn--1qqw23ajn" + + "jcphilipsyno-dshintokushimajoyentrentino-sued-tiroljoyokaichibal" + + "atinoipirangamvikharkivalleeaosteinkjerusalembroideryjpnjprshiny" + + "oshitomiokamitondabayashiogamagoriziajurkoseis-a-playerkosherbro" + + "okegawakoshimizumakiyosunndalkoshunantankhersonkosugekotohiradom" + + "ainsurehabmerkotourakouhokutamakizunokunimimatakatoris-a-republi" + + "cancerresearchaeologicaliforniakounosupplieshirahamatonbetsurnad" + + "alkouyamashikekouzushimashikis-a-rockstarachowicekozagawakozakis" + + "-a-socialistdlibestadkozowinnershirakofuefukihaboromskogkpnkppsp" + + "dnshiranukamitsuekrasnikahokutokashikis-a-soxfankrasnodarkredsto" + + "nekristiansandcatshiraois-a-studentalkristiansundkrodsheradkroks" + + "tadelvaldaostathelleluxembourgkryminamitanekumatorinokumejimasoy" + + "kumenantokigawakunisakis-a-teacherkassyncloudkunitachiarailwayku" + + "nitomigusukumamotoyamashikokuchuokunneppubtlshiraokamogawakunsts" + + "ammlungkunstunddesignkuokgroupictetrentino-suedtirolkureisenkurg" + + "ankurobelaudibleasingleshiratakahagitlaborkurogiminamiashigaraku" + + "roisoftwarendalenugkuromatsunais-a-techietis-a-personaltrainerku" + + "rotakikawasakis-a-therapistoiakushirogawakustanais-an-accountant" + + "shinichinankusupplykutchanelkutnokuzumakis-an-actorkvafjordkvals" + + "undkvamlidlugolekadenagahamaroygardenebakkeshibechambagriculture" + + "nnebudejjuedischesapeakebayernutwentekvanangenkvinesdalkvinnhera" + + "dkviteseidskogkvitsoykwpspectruminamiuonumassa-carrara-massacarr" + + "aramassabusinessebyklecznagasukekzmisugitokorozawamitourismolang" + + "evagrigentomologyeonggiehtavuoatnadexetermitoyoakemiuramiyazurew" + + "ebsiteshikagamiishibukawamiyotamanomjondalenmlbfanmonstermontrea" + + "lestatefarmequipmentrentinoaadigemonza-brianzapposhishikuis-an-a" + + "rtistgorymonza-e-della-brianzaptokuyamatsumotofukemonzabrianzara" + + "monzaebrianzamonzaedellabrianzamoonscalewismillermoparachutingmo" + + "rdoviamoriyamatsunomoriyoshiminamiawajikis-an-engineeringmormonm" + + "outhagakhanamigawamoroyamatsusakahoginankokubunjis-an-entertaine" + + "rmortgagemoscowioshisognemoseushistorymosjoenmoskeneshisuifuelve" + + "ruminamiyamashirokawanabelembetsukubankhmelnitskiyamarylhurstjor" + + "dalshalsenmosshitaramamosvikhmelnytskyivanylvenicemoteginowaniih" + + "amatamakawajimanxn--2scrj9christiansburgroks-thisayamanobeokakud" + + "amatsuemoviemovimientokyotangovtrentinoalto-adigemovistargardmoz" + + "illa-iotrentinoaltoadigemtranbymuenstermuginozawaonsenmuikamisat" + + "okaizukamikitayamatsuris-bytomaritimekeepingmukodairamulhouserve" + + "game-servermunakatanemuncienciamuosattemupictureshizukuishimofus" + + "aitamatsukuris-certifieducatorahimeshimamateramobaramurmanskhpla" + + "ystationmurotorcraftrentinos-tirolmusashimurayamatsushigemusashi" + + "noharamuseetrentinostirolmuseumverenigingmusicargodaddyn-o-saurl" + + "andeshizuokanagawamutsuzawamy-vigorgemy-wanggouvichristmasakindl" + + "efrakkestadyndns-picsantacruzsantafedjejuifminamidaitomandalucan" + + "iamyactivedirectorymyasustor-elvdalmycdn77-sslattuminanomydattol" + + "ocalhistorymyddnskingmydissentrentinosud-tirolmydobisshikis-foun" + + "dationmydroboehringerikemydshoppingmyeffectrentinosudtirolmyfire" + + "wallonieruchomoscienceandindustrynmyfritzmyftpaccesshoujis-gonem" + + "yhome-servermyjinomykolaivaomymailermymediapchromedicaltanissett" + + "airavennagatorockartuzymyokohamamatsudamypepiemontemypetshowamyp" + + "hotoshibalena-deviceshowtimembershriramsterdamnserverbaniamypiag" + + "etmyiphostrodawaramypsxn--30rr7ymysecuritycamerakermyshopblocksi" + + "enarutolgamytis-a-bookkeeperugiamytuleapilotsigdalmyvnchryslermy" + + "wirepaircraftingvollombardiamondsilklabudhabikinokawabarthaebaru" + + "ericssonyoursidell-ogliastraderpiwatepixolinopizzapknx-serversai" + + "lleshiojirishirifujiedaplantationplantsimple-urlplatformshangril" + + "ansirdalplazaplcube-serversicherungplumbingoplurinacionalpodhale" + + "zajskolobrzegersundpodlasiellaktyubinskiptveterinaireadthedocsca" + + "ppgafannefrankfurtrentinosuedtirolpodzonepohlpoivronpokerpokrovs" + + "komaganepoliticarrierpolitiendapolkowicepoltavalle-aostatic-acce" + + "ssjcbnpparibaselburgpomorzeszowitdkomakiyosemiteponpesaro-urbino" + + "-pesarourbinopesaromasvuotnaritakurashikis-into-animeguroroshinj" + + "ukumanowtvallee-d-aosteigenponypordenonepornporsangerporsangugep" + + "orsgrunnanyokoshibahikariwanumatakinouepoznanpraxis-a-bruinsfanp" + + "rdpreservationpresidioprgmrprimelhusdecorativeartslupskomatsushi" + + "masfjordenprincipeprivatizehealthinsuranceprochowiceproductionsl" + + "zprofesionalprogressivenneslaskerrylogisticsnoasaitoshimayfirsto" + + "ckholmestrandpromombetsurgeonshalloffameldalpropertyprotectionpr" + + "otonetrentinsud-tirolprudentialpruszkowithgoogleapisa-hockeynuts" + + "iracusakatakkoebenhavnprvcyberlevagangaviikanonjis-into-carshink" + + "amigotoyohashimototalprzeworskogptplusgardenpulawypupimientaketo" + + "misatomobellevuelosangelesjabbottrentinosued-tirolpvhagebostadpv" + + "trentinsudtirolpwchungnamdalseidfjordyndns-remotewdyndns-serveri" + + "signissedaluccapitalonewportlligatoyourapzqldqponiatowadaqslingq" + + "ualifioappinkmpspbarefootballfinanzgoraustinnavuotnaples3-ca-cen" + + "tral-1quickconnectrentinsued-tirolquicksytestingquipelementsokan" + + "aniimihoboleslawiechurcharternidyndns-webhopencraftoystre-slidre" + + "ttozawaqvcircleverappsseljeepsongdalenviknaharimalopolskanlandyn" + + "dns-wikirkenesantamariakesusonosuzakanazawasuzukaneyamazoesuzuki" + + "s-leetrentino-stirolsvalbardunloppacificircustomersveiosvelvikom" + + "onowruzhgorodeosvizzerasvn-reposopotrentinsuedtirolswedenswidnic" + + "artoonartdecologiaswidnikkokaminokawanishiaizubangeswiebodzin-bu" + + "tterswiftcoverswinoujscienceandhistoryswissmarterthanyousynology" + + "-diskstationsynology-dsor-odaltuscanytushuissier-justicetuvalle-" + + "daostavangertuxfamilytwmailvestfoldvestnesorocabalsan-sudtirolla" + + "gdenesnaaseinet-freaksolognevestre-slidreplanetariuminiserverves" + + "tre-totennishiawakuravestvagoyvevelstadvibo-valentiavibovalentia" + + "videovillasorreisahayakawakamiichikawamisatottoris-into-cartoons" + + "hinshinotsurgeryvinnicasacamdvrcampinagrandebuilderschlesischeso" + + "rtlandvinnytsiavipsinaappioneervirginiavirtual-userveexchangevir" + + "tualservervirtualuserveftpippugliavirtueeldomein-vigorlicevirtue" + + "lvisakegawaviterboknowsitallvivolkenkundenvixn--32vp30haibarakit" + + "ahiroshimapartmentsevenassisicilyvlaanderenvladikavkazimierz-dol" + + "nyvladimirvlogintoyonezawavminnesotaketakayamasudavologdanskomvu" + + "xn--2m4a15evolvolkswagentsorumincomcastresindevicenzaporizhzhiav" + + "olyngdalvoorloperauniterois-lostrolekamakurazakiwakunigamiharusl" + + "ivinghistoryvossevangenvotevotingvotoyonowloclawekongsbergwmflab" + + "soundcastronomy-routerwnextdirectromsakakinokiaworldworse-thanda" + + "wowithyoutuberspacekitagatargets-itroandinosaurepbodynamic-dnsor" + + "-varangerwpdevcloudwritesthisblogsytewroclawiwatsukiyonotairesta" + + "urantrogstadwtcmintelligencewtfastvps-serveronakasatsunairguardi" + + "annakadomarinebraskauniversitydalaheadjudaicable-modemocraciawuo" + + "zuwzmiuwajimaxn--3oq18vl8pn36axn--3pxu8kongsvingerxn--42c2d9axn-" + + "-45br5cylxn--45brj9citadeliveryggeexn--45q11citichernovtsymantec" + + "hnologyxn--4gbriminingxn--4it168dxn--4it797koninjambylxn--4pvxs4" + + "allxn--54b7fta0ccivilaviationiyodogawaxn--55qw42gxn--55qx5dxn--5" + + "js045dxn--5rtp49civilisationxn--5rtq34konskowolayangrouphonefoss" + + "hioyanaizustkannamilanotogawaxn--5su34j936bgsgxn--5tzm5gxn--6btw" + + "5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn--7t0a264civilizationxn--" + + "80adxhksouthcarolinarvikommunalforbundxn--80ao21axn--80aqecdr1ax" + + "n--80asehdbarrel-of-knowledgemologicallillyomitanoddaustrheimatu" + + "nduhrennesoyokozebinordreisa-geekaracoldwarmiastagebizenakanotod" + + "denayorovnobninskaragandaukraanghkeymachineustarnbergjemnes3-ap-" + + "southeast-2xn--80aswgxn--80augustownproviderxn--8ltr62konsulatro" + + "beepilepsykkylvenetodayxn--8pvr4uxn--8y0a063axn--90a3academiamic" + + "aaarborteaches-yogasawaracingxn--90aeroportalabamagasakishimabar" + + "aogakibichuoxn--90aishobarakawagoexn--90azhytomyravendbarrell-of" + + "-knowledgeologyonagoyauthordalandeportenrightathomeftpalmaserati" + + "bmdevelopmentcp4lima-cityeatselinogradultateshinanomachimkentate" + + "yamabogadodgehirnrtatsunobihirosakikamijimatsuzaki234xn--9dbhblg" + + "6dietcimdbarsycenterprisesakikugawalmartjeldsundishakotanflfanfs" + + "hostrowwlkpmgladefinimakanegasakirautomotiveconomiasakuchinotsuc" + + "hiurakawalesundgcagliaribeiraokinawashirosatochigiessensiositele" + + "kommunikationionjukudoyamaintenancehimejiitatebayashiibajddarchi" + + "tecturealtorlandiscountyolasitempresashibetsukuiiyamanouchikuhok" + + "uryugasakitaurayasudaurskog-holandingjerdrumemsettsupportaxihuan" + + "aval-d-aosta-valleyokosukanumazuryokoteastcoastaldefenceatonsber" + + "gjerstadotsuruokakamigaharagrocerybnikeisenbahnatuurwetenschappe" + + "naumburggfarmerseine164-baltimore-og-romsdalipayboltattoobiraetn" + + "abudapest-a-la-masion-webhostingdyniabruzzoologicalvinklein-addr" + + "ammenuorochesterimo-i-ranaamesjevuemielno-ipifonyc66xn--9dbq2axn" + + "--9et52uxn--9krt00axn--andy-iraxn--aroport-byandexcloudxn--asky-" + + "iraxn--aurskog-hland-jnbarsyonlinewhampshirealtysnes3-us-east-2x" + + "n--avery-yuasakuhokkaidownloadxn--b-5gaxn--b4w605ferdxn--balsan-" + + "sdtirol-nsbsouthwestfalenxn--bck1b9a5dre4civilwarmanagementozsde" + + "ltaiwanairforcebetsuikidsmynasushiobarackmazerbaijan-mayendofthe" + + "internetlifyis-a-cubicle-slavellinodearthachiojiyaitakanabeautys" + + "vardoesntexisteingeekashibatakasugais-a-democratrani-andria-barl" + + "etta-trani-andriaxn--bdddj-mrabdxn--bearalvhki-y4axn--berlevg-jx" + + "axn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nachikatsuuraxn-" + + "-bievt-0qa2xn--bjarky-fyaotsurreyxn--bjddar-ptarnobrzegyptianxn-" + + "-blt-elabourxn--bmlo-graingerxn--bod-2natalxn--bozen-sdtirol-2ob" + + "anazawaxn--brnny-wuacademy-firewall-gatewayxn--brnnysund-m8accid" + + "ent-investigation-aptibleadpagest-mon-blogueurovision-rancherkas" + + "ydneyxn--brum-voagatromsojamisonxn--btsfjord-9zaxn--bulsan-sdtir" + + "ol-nsbashkiriautoscanadaeguambulanceoceanographics3-eu-west-1xn-" + "-c1avgxn--c2br7gxn--c3s14misasaguris-an-anarchistoricalsocietyxn" + - "--cck2b3basilicataniavoues3-external-1xn--cesena-forl-mcbremange" + - "rxn--cesenaforl-i8axn--cg4bkis-lostrolekamakurazakiwakunigamihar" + - "unusualpersonxn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a2o" + - "xn--correios-e-telecomunicaes-ghc29axn--czr694basketballyngenvir" + - "onmentalconservationrenderxn--czrs0troandinosaurepaircraftingvol" + - "lombardiamondsor-odalxn--czru2dxn--czrw28batodayonagunicommbanka" + - "rasjohkamikoaniikappuboliviajessheimetlifeinsuranceu-4xn--d1acj3" + - "batsfjordishakotanhktcp4xn--d1alfaromeoxn--d1atrogstadxn--d5qv7z" + - "876civilwarmanagementoystre-slidrettozawaxn--davvenjrga-y4axn--d" + - "jrs72d6uyxn--djty4konyvelolxn--dnna-grajewolterskluwerxn--drbak-" + - "wuaxn--dyry-iraxn--e1a4clanbibaidarmeniaxn--eckvdtc9dxn--efvn9sp" + - "eedpartnersolognexn--efvy88hair-surveillancexn--ehqz56nxn--elqq1" + - "6hakatanortonxn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct429ko" + - "oris-a-personaltrainerxn--fhbeiarnxn--finny-yuaxn--fiq228c5hspje" + - "lkavikommunexn--fiq64bauhausposts-and-telecommunicationswatch-an" + - "d-clockerxn--fiqs8spreadbettingxn--fiqz9spydebergxn--fjord-lraxn" + - "--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--forl-cesena-fcbsrl" + - "xn--forlcesena-c8axn--fpcrj9c3dxn--frde-grandrapidsrtrentinsudti" + - "rolxn--frna-woaraisaijosoyrovigotpantheonsitextileirvikopervikha" + - "rkivalleeaosteinkjerusalembroideryxn--frya-hraxn--fzc2c9e2cldmai" + - "lubindalublindesnesannohelpagesanokarumaifashionxn--fzys8d69uvgm" + - "ailxn--g2xx48clickasaokamiminersantabarbaraxn--gckr3f0fauskedsmo" + - "korsetagayasells-for-ufcfanxn--gecrj9clinichirurgiens-dentistes-" + - "en-francexn--ggaviika-8ya47hakodatexn--gildeskl-g0axn--givuotna-" + - "8yasakaiminatoyookaniepcexn--gjvik-wuaxn--gk3at1exn--gls-elacaix" + - "axn--gmq050is-not-certifiedugit-pagespeedmobilizeroticahcesuoloa" + - "nshintomikasaharaxn--gmqw5axn--h-2failxn--h1aeghakonexn--h2breg3" + - "evenesrvaporcloudxn--h2brj9c8cliniquenoharaxn--h3cuzk1digitalxn-" + - "-hbmer-xqaxn--hcesuolo-7ya35beneventogakushimotoganewhollandisre" + - "chtrainingladefinimakanegasakiraxaustevoll-o-g-i-naval-d-aosta-v" + - "alleyokosukanumazuryokotebinagisobetsumidatlantic66xn--hery-irax" + - "n--hgebostad-g3axn--hkkinen-5waxn--hmmrfeasta-s4accident-prevent" + - "ion-riopretobamaceratabuseating-organicbcn-north-1xn--hnefoss-q1" + - "axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-" + - "q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513nxn--indery-fyasugiv" + - "ingxn--io0a7is-savedunetbankazunow-dnshinyoshitomiokamitondabaya" + - "shiogamagoriziaxn--j1aefbsbxn--12cfi8ixb8luxuryxn--j1amhakubahcc" + - "avuotnagarahkkeravjuegoshikikuchikuseikarugalsacexn--j6w193gxn--" + - "jlq61u9w7bentleyoriikarasjokarasuyamarumorimachidaxn--jlster-bya" + - "suokanoyaltakashimarugame-hostrowieclintonoshoesantacruzsantafed" + - "jejuifminamifuranoxn--jrpeland-54axn--jvr189misawaxn--k7yn95exn-" + - "-karmy-yuaxn--kbrq7oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn-" + - "-klt787dxn--kltp7dxn--kltx9axn--klty5xn--3ds443gxn--koluokta-7ya" + - "57hakuis-a-landscaperxn--kprw13dxn--kpry57dxn--kpu716fbx-osassar" + - "is-a-doctorayxn--kput3is-slickddielddanuorrikuzentakatajimidoris" + - "sagamiharaxn--krager-gyatomitamamuraxn--kranghke-b0axn--krdshera" + - "d-m8axn--krehamn-dxaxn--krjohka-hwab49jdfastlylbarcelonagareyama" + - "keupowiat-band-campaniaustinnavigationavoizumizakibigawajudygarl" + - "anddnslivelanddnss3-ca-central-1xn--ksnes-uuaxn--kvfjord-nxaxn--" + - "kvitsy-fyatsukanraxn--kvnangen-k0axn--l-1fairwindstorfjordxn--l1" + - "accentureklamborghinikolaeventstorjdevcloudfunctionshiojirishiri" + - "fujiedaxn--laheadju-7yatsushiroxn--langevg-jxaxn--lcvr32dxn--ldi" + - "ngen-q1axn--leagaviika-52beppublishproxyzgorzeleccoffeedbackplan" + - "eapplicationcloudaccesscambridgestonewyorkshirecifedexhibitionhl" + - "fanhs3-us-west-1xn--lesund-huaxn--lgbbat1ad8jelenia-goraxn--lgrd" + - "-poacctromsakakinokiaxn--lhppi-xqaxn--linds-pramericanartromsoja" + - "misonxn--lns-qlanxesstpetersburgxn--loabt-0qaxn--lrdal-sraxn--lr" + - "enskog-54axn--lt-liaclothingdustdataitogliattiresantamariakexn--" + - "lten-granexn--lury-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--" + - "mgb2ddestreamuneuesolundbeckomforbarreauctionredumbrella-speziau" + - "strheimatunduhrennesoyokozebinordreisa-geek12xn--mgb9awbfbxosaud" + - "axn--mgba3a3ejtrusteexn--mgba3a4f16axn--mgba3a4franamizuholdings" + - "tudioxn--mgba7c0bbn0axn--mgbaakc7dvfedorapeoplegnicanonoichinomi" + - "yakexn--mgbaam7a8hakusanagochijiwadellogliastradingxn--mgbab2bdx" + - "n--mgbai9a5eva00beskidyn-ip24xn--mgbai9azgqp6jeonnamerikawauexn-" + - "-mgbayh7gpaleoxn--mgbb9fbpobihirosakikamijimatsuzakis-uberleetre" + - "ntino-altoadigexn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mg" + - "berp4a5d4a87gxn--mgberp4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--" + - "mgbpl2fhskydivingxn--mgbqly7c0a67fbcn-northwest-1xn--mgbqly7cvaf" + - "ranziskanerimaringatlantakaharuxn--mgbt3dhdxn--mgbtf8flatangerxn" + - "--mgbtx2bestbuyshouses3-us-west-2xn--mgbx4cd0abbvieeexn--mix082f" + - "edoraprojectrapaniizaxn--mix891feiraquarelleaseeklogesauheradynn" + - "sasebofageorgeorgiaxn--mjndalen-64axn--mk0axin-dslgbtrvareserveh" + - "ttpinkmpspbargainstantcloudfrontdoorhcloudiscoveryomitanoceanogr" + - "aphiqueu-3xn--mk1bu44cngrondarxn--mkru45is-very-badajozxn--mlatv" + - "uopmi-s4axn--mli-tlapyxn--mlselv-iuaxn--moreke-juaxn--mori-qsaku" + - "ragawaxn--mosjen-eyawaraxn--mot-tlaquilancomeldalxn--mre-og-roms" + - "dal-qqbetainaboxfusejnyoshiokanzakiyokawaraxn--msy-ula0haldenxn-" + + "--cck2b3basicservercelliguriaveroykenglandiscourses3-eu-west-2xn" + + "--cesena-forl-mcbremangerxn--cesenaforl-i8axn--cg4bkis-not-certi" + + "fiedugit-pagespeedmobilizeroticahcesuoloanshinshiroxn--ciqpnxn--" + + "clchc0ea0b2g2a9gcdxn--comunicaes-v6a2oxn--correios-e-telecomunic" + + "aes-ghc29axn--czr694basilicataniavocatanzarowebspacemreviewskrak" + + "oweddingjesdalazioceanographiqueu-1xn--czrs0trusteexn--czru2dxn-" + + "-czrw28basketballyngenvironmentalconservationrenderxn--d1acj3bat" + + "ochiokinoshimakeupowiat-band-campaniavoues3-eu-west-3utilitiesqu" + + "are7xn--d1alfaromeoxn--d1atrvareservehalflifestylexn--d5qv7z876c" + + "lanbibaidarmeniaxn--davvenjrga-y4axn--djrs72d6uyxn--djty4konyvel" + + "olipophotographysioxn--dnna-grajewolterskluwerxn--drbak-wuaxn--d" + + "yry-iraxn--e1a4cldmailovecollegefantasyleaguernseyxn--eckvdtc9dx" + + "n--efvn9sowaxn--efvy88hair-surveillancexn--ehqz56nxn--elqq16haka" + + "tanortonxn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct429kooris-" + + "a-photographerokuapphilatelyxn--fhbeiarnxn--finny-yuaxn--fiq228c" + + "5hspeedpartnersolundbeckomforbargainstantcloudfrontdoorxn--fiq64" + + "batsfjordisrechtraininglassassinationalheritageu-4xn--fiqs8spjel" + + "kavikommunexn--fiqz9spreadbettingxn--fjord-lraxn--fjq720axn--fl-" + + "ziaxn--flor-jraxn--flw351exn--forl-cesena-fcbsspydebergxn--forlc" + + "esena-c8axn--fpcrj9c3dxn--frde-grandrapidsrlxn--frna-woaraisaijo" + + "soyrovigotsukitahatakamoriokakegawaxn--frya-hraxn--fzc2c9e2click" + + "ashiharaxn--fzys8d69uvgmailxn--g2xx48clinichirurgiens-dentistes-" + + "en-francexn--gckr3f0fauskedsmokorsetagayaseralingenoamishirasato" + + "gokasells-for-lessaskatchewanxn--gecrj9cliniquenoharaxn--ggaviik" + + "a-8ya47hakodatexn--gildeskl-g0axn--givuotna-8yasakaiminatoyookan" + + "iepcexn--gjvik-wuaxn--gk3at1exn--gls-elacaixaxn--gmq050is-savedu" + + "netflixilxn--gmqw5axn--h-2failxn--h1aeghakonexn--h2breg3evenesrt" + + "rentoyonakagyokutoyakokonoexn--h2brj9c8clintonoshoesantoandreamh" + + "ostersanukis-a-designerxn--h3cuzk1digitalxn--hbmer-xqaxn--hcesuo" + + "lo-7ya35bauhausposts-and-telecommunicationswatch-and-clockerxn--" + + "hery-iraxn--hgebostad-g3axn--hkkinen-5waxn--hmmrfeasta-s4acciden" + + "t-prevention-riopretobamaceratabuseating-organicbcn-north-1xn--h" + + "nefoss-q1axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hxt814exn-" + + "-hyanger-q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513nxn--indery" + + "-fyasugivingxn--io0a7is-slickfhappousrcfastlylbananarepublicasad" + + "elamonedatingjovikarasjohkamikoaniikappuboliviajessheimetacentru" + + "meteorappalmspringsakerevistaples3-external-1xn--j1aefbsbxn--12c" + + "fi8ixb8lxn--j1amhakubahccavuotnagarahkkeravjuegoshikikuchikuseik" + + "arugalsacexn--j6w193gxn--jlq61u9w7beneventoeidsvollimanowarudaxa" + + "ustevollavagiskebinagisoccertmgretakahamalselvendrellavangenavig" + + "ationavoizumizakibigawajudygarlanddnslivelanddnss3-ap-southeast-" + + "1kappchizip6xn--jlster-byasuokanoyaltakashimarshallstatebankoper" + + "vikharkovalleedaostexn--jrpeland-54axn--jvr189misawaxn--k7yn95ex" + + "n--karmy-yuaxn--kbrq7oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woax" + + "n--klt787dxn--kltp7dxn--kltx9axn--klty5xn--3bst00misakis-an-actr" + + "esshinjournalismailillesandefjordxn--koluokta-7ya57hakuis-a-lawy" + + "erxn--kprw13dxn--kpry57dxn--kpu716fbx-osassaris-a-doctorayxn--kp" + + "ut3is-uberleetrentino-sud-tirolxn--krager-gyatomitamamuraxn--kra" + + "nghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49jdfas" + + "tpanelblagrarchaeologyeongbuk0emmafann-arboretumbriamallamaceiob" + + "bcg120001wwwebredirectmemorial-o-g-i-n4t3l3p0rtashkentatamotors3" + + "-ap-northeast-1337xn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyatsuk" + + "anraxn--kvnangen-k0axn--l-1fairwindsrvaporcloudxn--l1accenturekl" + + "amborghinikolaeventstorfjordxn--laheadju-7yatsushiroxn--langevg-" + + "jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika-52bentleyonagunicomm" + + "bankarasjokarasuyamarugame-hostrowiecaseihicampobassociatest-ise" + + "rvecounterstrikeverbankaratevje-og-hornnes3-us-gov-west-1xn--les" + + "und-huaxn--lgbbat1ad8jelenia-goraxn--lgrd-poacctrycloudflarezzox" + + "n--lhppi-xqaxn--linds-pramericanartrysiljanxn--lns-qlanxesstorjd" + + "evcloudfunctionshintomikasaharaxn--loabt-0qaxn--lrdal-sraxn--lre" + + "nskog-54axn--lt-liaclothingdustdataitogitsuldalucernexn--lten-gr" + + "anexn--lury-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--mgb2dde" + + "stpetersburgxn--mgb9awbfbxosaudaxn--mgba3a3ejtunesorfoldxn--mgba" + + "3a4f16axn--mgba3a4franamizuholdingstreamuneuesolutionsokndalxn--" + + "mgba7c0bbn0axn--mgbaakc7dvfedorapeoplegnicanonoichinomiyakexn--m" + + "gbaam7a8hakusanagochijiwadellogliastradingxn--mgbab2bdxn--mgbah1" + + "a3hjkrdxn--mgbai9a5eva00beppublishproxyzgorzeleccoffeedbackplane" + + "applicationcloudaccesscambridgestonewyorkshirecifedexhibitionhkt" + + "jmaxxxboxenapponazure-mobilexn--mgbai9azgqp6jeonnamerikawauexn--" + + "mgbayh7gpaleoxn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mgbe" + + "rp4a5d4a87gxn--mgberp4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--mg" + + "bpl2fhskydivingxn--mgbqly7c0a67fbcn-northwest-1xn--mgbqly7cvafra" + + "nziskanerimaringatlantakahashimamakiryuohdattowebcampinashikimin" + + "ohostre-totendofinternet-dnsaliasiaxn--mgbt3dhdxn--mgbtf8flatang" + + "erxn--mgbtx2beskidyn-ip24xn--mgbx4cd0abbvieeexn--mix082fedorapro" + + "jectravelchannelxn--mix891feiraquarelleaseeklogesauheradynserveb" + + "bsasebofageorgeorgiaxn--mjndalen-64axn--mk0axin-dslgbtunkomorots" + + "ukaminoyamaxunjargaxn--mk1bu44cngrondarxn--mkru45is-very-badajoz" + + "xn--mlatvuopmi-s4axn--mli-tlapyxn--mlselv-iuaxn--moreke-juaxn--m" + + "ori-qsakuragawaxn--mosjen-eyawaraxn--mot-tlaquilancomelbournexn-" + + "-mre-og-romsdal-qqbestbuyshouses3-us-west-1xn--msy-ula0haldenxn-" + "-mtta-vrjjat-k7aflakstadaokagakicks-assnasaarlandxn--muost-0qaxn" + - "--mxtq1misconfusedxn--ngbc5azdxn--ngbe9e0axn--ngbrxn--3e0b707exn" + - "--nit225koryokamikawanehonbetsurutaharaxn--nmesjevuemie-tcbalsan" + - "-suedtirolkuszczytnombresciaxn--nnx388axn--nodessakurais-very-ev" + - "illagexn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--n" + - "ttery-byaeservehumourxn--nvuotna-hwaxn--nyqy26axn--o1achattanoog" + - "anordlandxn--o3cw4halsaintlouis-a-anarchistoireggio-emilia-romag" + - "nakatsugawaxn--o3cyx2axn--od0algxn--od0aq3bhzcaseihicampobassoci" + - "atest-iservecounterstrikeverbankaratevje-og-hornnes3-website-ap-" + - "northeast-1xn--ogbpf8flekkefjordxn--oppegrd-ixaxn--ostery-fyawat" + - "ahamaxn--osyro-wuaxn--otu796dxn--p1acfermobilyxn--p1ais-very-goo" + - "dyearxn--pbt977cnpyatigorskodjeffersonxn--pgbs0dhlxn--porsgu-sta" + - "26ferraraxn--pssu33lxn--pssy2uxn--q9jyb4cnsantoandreamhostersanu" + - "kis-a-cubicle-slavellinodearthachiojiyaitakanabeautysvardoesntex" + - "isteingeekashibatakasugais-a-democratozsdeltaiwanairforcebetsuik" + - "idsmynasushiobarackmazerbaijan-mayendoftheinternetflixilovecolle" + - "gefantasyleaguernseyxn--qcka1pmckinseyxn--qqqt11mishimatsumaebas" + - "hikshacknetrentino-sudtirolxn--qxamusementdllxn--rady-iraxn--rda" + - "l-poaxn--rde-ularvikosaigawaxn--rdy-0nabaris-very-nicexn--rennes" + - "y-v1axn--rhkkervju-01aferrarivnexn--rholt-mragowoodsidemoneyxn--" + - "rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-5nativeamericananti" + - "questudynamisches-dnsolutionsokndalxn--risr-iraxn--rland-uuaxn--" + - "rlingen-mxaxn--rmskog-byaxn--rny31hammarfeastafricapetownnews-st" + - "agingxn--rovu88bieigersundivtasvuodnakamuratajirittogojomedizinh" + - "istorisches3-website-ap-southeast-1xn--rros-granvindafjordxn--rs" + - "kog-uuaxn--rst-0naturalhistorymuseumcenterxn--rsta-francaisehara" + - "xn--rvc1e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1faithruherecipes" + - "caravantaarpippulawyxn--s9brj9cntrani-andria-barletta-trani-andr" + - "iaxn--sandnessjen-ogbielawalterxn--sandy-yuaxn--sdtirol-n2axn--s" + - "eral-lraxn--ses554gxn--sgne-gratangenxn--skierv-utazastuff-4-sal" + - "exn--skjervy-v1axn--skjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat" + - "-5naturalsciencesnaturellestufftoread-booksnesomaxn--slt-elabcie" + - "szynxn--smla-hraxn--smna-gratis-a-bulls-fanxn--snase-nraxn--sndr" + - "e-land-0cbielladbrokes3-website-ap-southeast-2xn--snes-poaxn--sn" + - "sa-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-vara" + - "nger-ggbieszczadygeyachiyodaejeonbuklugsmilebtimnetzjampagefront" + - "appanamatta-varjjatjeldsundivttasvuotnakaniikawatanaguraxn--srfo" + - "ld-byaxn--srreisa-q1axn--srum-grazxn--stfold-9xaxn--stjrdal-s1ax" + - "n--stjrdalshalsen-sqbievathletajimabaridagawakuyabukijobserverra" + - "nkoshigayachimataikikonaikawachinaganoharamcoachampionshiphoptob" + - "ishimagazineat-urlillyukiiyamanouchikuhokuryugasakitaurayasudaxn" + - "--stre-toten-zcbifukagawarszawashingtondclkaratsuginamikatagamil" + - "itaryukuhashimoichinosekigaharaxn--t60b56axn--tckweatherchannelx" + - "n--tiq49xqyjetztrentino-s-tirolxn--tjme-hraxn--tn0agrinet-freaks" + - "tuttgartrentinsued-tirolxn--tnsberg-q1axn--tor131oxn--trany-yuax" + - "n--trentin-sd-tirol-rzbigv-infoodnetworkangerxn--trentin-sdtirol" + - "-7vbihorologyurihonjournalistjohnikonanporohtawaramotoineppuglia" + - "xn--trentino-sd-tirol-c3bikedagestangeometre-experts-comptables3" + - "-website-eu-west-1xn--trentino-sdtirol-szbilbaogashimadachicago-" + - "vipsinaappanasonicasertairanzaninohekinannestadiyusuharaxn--tren" + - "tinosd-tirol-rzbillustrationthewifiatmallorcadaques3-website-sa-" + - "east-1xn--trentinosdtirol-7vbiomutashinain-the-bandain-vpncasino" + - "rdkapparaglidinglassassinationalheritagexn--trentinsd-tirol-6vbi" + - "rdartcenterprisecloudappspotagerxn--trentinsdtirol-nsbirkenesodd" + - "tangenovaraholtaleninomiyakonojorpelandnparisor-fronirasakincheo" + - "nishiazaindianapolis-a-bloggerxn--trgstad-r1axn--trna-woaxn--tro" + - "ms-zuaxn--tysvr-vraxn--uc0atvarggatrentinsuedtirolxn--uc0ay4axn-" + - "-uist22hamurakamigoris-a-lawyerxn--uisz3gxn--unjrga-rtargivestby" + - "temarkosakaerodromegallupinbarrel-of-knowledgemologicallazioddau" + - "thordalandeportenrightathomeftpalmspringsakereportatsunobiraukra" + - "anghkeymachineustarhubss3-eu-central-1xn--unup4yxn--uuwu58axn--v" + - "ads-jraxn--valle-aoste-ebbtrysiljanxn--valle-d-aoste-ehbodollsus" + - "akis-into-cartoonshintokushimaxn--valleaoste-e7axn--valledaoste-" + - "ebbvacationsusonoxn--vard-jraxn--vegrshei-c0axn--vermgensberater" + - "-ctbirthplacexn--vermgensberatung-pwbjarkoyusuisserveircateringe" + - "buildingleezexn--vestvgy-ixa6oxn--vg-yiabkhaziaxn--vgan-qoaxn--v" + - "gsy-qoa0jevnakershuscultureggiocalabriaxn--vgu402coguchikuzenxn-" + - "-vhquvaroyxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla" + - "5gxn--vuq861bjerkreimbamblebesbyglandroverhallaakesvuemielecceu-" + - "2xn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1collectionxn" + - "--wgbl6axn--xhq521bjugnieznord-frontierxn--xkc2al3hye2axn--xkc2d" + - "l3a5ee0handsonxn--y9a3aquariumissilelxn--yer-znaturbruksgymnxn--" + - "yfro4i67oxn--ygarden-p1axn--ygbi2ammxn--3hcrj9circustomerxn--yst" + - "re-slidre-ujblackfridayuu2-localhostoregontrailroadrangedalimano" + - "warudaxn--zbx025dxn--zf0ao64axn--zf0avxn--3oq18vl8pn36axn--zfr16" + - "4bloombergbauernishigovtjmaxxxboxenapponazure-mobilexnbayxz" + "--mxtq1misconfusedxn--ngbc5azdxn--ngbe9e0axn--ngbrxn--3ds443gxn-" + + "-nit225koryokamikawanehonbetsurutaharaxn--nmesjevuemie-tcbalsan-" + + "suedtirolkuszczytnombresciaxn--nnx388axn--nodessakurais-very-evi" + + "llagexn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--nt" + + "tery-byaeservehttpiszxn--nvuotna-hwaxn--nyqy26axn--o1achattanoog" + + "anordlandxn--o3cw4halsaintlouis-a-anarchistoireggiocalabriaxn--o" + + "3cyx2axn--od0algxn--od0aq3betainaboxfusejnyoriikaratsuginamikata" + + "gamilitaryoshiokanzakiyokawaraxn--ogbpf8flekkefjordxn--oppegrd-i" + + "xaxn--ostery-fyawatahamaxn--osyro-wuaxn--otu796dxn--p1acfermochi" + + "zukirovogradoyxn--p1ais-very-goodyearxn--pbt977cnpyatigorskodjef" + + "fersonxn--pgbs0dhlxn--porsgu-sta26ferraraxn--pssu33lxn--pssy2uxn" + + "--q9jyb4cnsaobernardoxn--qcka1pmckinseyxn--qqqt11mishimatsumaeba" + + "shikshacknetrentinoa-adigexn--qxamusementdllpagestudioxn--rady-i" + + "raxn--rdal-poaxn--rde-ularvikosaigawaxn--rdy-0nabaris-very-nicex" + + "n--rennesy-v1axn--rhkkervju-01aferrarivnexn--rholt-mragowoodside" + + "moneyxn--rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-5nativeame" + + "ricanantiquestudynamisches-dnsomaxn--risr-iraxn--rland-uuaxn--rl" + + "ingen-mxaxn--rmskog-byaxn--rny31hammarfeastafricapetownnews-stag" + + "ingxn--rovu88bhzcasertaipeiheijin-the-bandain-vpncasinordkappana" + + "matta-varjjatjomemergencyahikobeardubaiduckdns3-us-west-2xn--rro" + + "s-granvindafjordxn--rskog-uuaxn--rst-0naturalhistorymuseumcenter" + + "xn--rsta-francaiseharaxn--rvc1e0am3exn--ryken-vuaxn--ryrvik-byax" + + "n--s-1faithruherecipescaravantaarpittsburghofficialxn--s9brj9cnt" + + "raniandriabarlettatraniandriaxn--sandnessjen-ogbieigersundivtasv" + + "uodnakamuratajirittogliattires3-website-ap-northeast-1xn--sandy-" + + "yuaxn--sdtirol-n2axn--seral-lraxn--ses554gxn--sgne-gratangenxn--" + + "skierv-utazastuff-4-salexn--skjervy-v1axn--skjk-soaxn--sknit-yqa" + + "xn--sknland-fxaxn--slat-5naturalsciencesnaturellestufftoread-boo" + + "ksnesomnarviikamishihoronobeauxartsandcraftsolarssonxn--slt-elab" + + "cieszynxn--smla-hraxn--smna-gratis-a-bulls-fanxn--snase-nraxn--s" + + "ndre-land-0cbielawaltervistaprinternationalfirearms3-website-ap-" + + "southeast-1xn--snes-poaxn--snsa-roaxn--sr-aurdal-l8axn--sr-fron-" + + "q1axn--sr-odal-q1axn--sr-varanger-ggbielladbrokes3-website-ap-so" + + "utheast-2xn--srfold-byaxn--srreisa-q1axn--srum-grazxn--stfold-9x" + + "axn--stjrdal-s1axn--stjrdalshalsen-sqbieszczadygeyachiyodaejeonb" + + "uklugsmilebtimnetzjampagefrontappanasonicateringebuildingleezexn" + + "--stre-toten-zcbievathletajimabaridagawakuyabukijobserverrankosh" + + "igayachimataijincheonhlfanhs3-website-eu-west-1xn--t60b56axn--tc" + + "kweatherchannelxn--tiq49xqyjetztrentino-sudtirolxn--tjme-hraxn--" + + "tn0agrinetbankosakaerodromegallupinbarreauctionredumbrella-spezi" + + "australiaisondriobranconagawalbrzycharitysfjordds3-eu-central-1x" + + "n--tnsberg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tirol-rzbif" + + "ukagawarszawashingtondclkareliancexn--trentin-sdtirol-7vbigv-inf" + + "oodnetworkangerxn--trentino-sd-tirol-c3bihorologyukindianapolis-" + + "a-bloggerxn--trentino-sdtirol-szbikedagestangeometre-experts-com" + + "ptables3-website-sa-east-1xn--trentinosd-tirol-rzbilbaogashimada" + + "chicagoboats3-website-us-east-1xn--trentinosdtirol-7vbillustrati" + + "onthewifiatmallorcadaques3-website-us-west-1xn--trentinsd-tirol-" + + "6vbiohtawaramotoineppueblockbustermezlglitchaselfiparaglidingliw" + + "icexn--trentinsdtirol-nsbirdartcenterprisecloudappspotagerxn--tr" + + "gstad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvarggatr" + + "itonxn--uc0ay4axn--uist22hamurakamigoris-a-liberalxn--uisz3gxn--" + + "unjrga-rtarumizusawaxn--unup4yxn--uuwu58axn--vads-jraxn--valle-a" + + "oste-ebbturystykanmakiwienxn--valle-d-aoste-ehbodollstuttgartrev" + + "isohughesooxn--valleaoste-e7axn--valledaoste-ebbvacationsusakis-" + + "into-gamessinazawaxn--vard-jraxn--vegrshei-c0axn--vermgensberate" + + "r-ctbirkenesoddtangenovaraholtalenikonanporomutashinaindianmarke" + + "tinglobalashovhachinohedmarkariyameiwamarumorimachidaxn--vermgen" + + "sberatung-pwbirthplacexn--vestvgy-ixa6oxn--vg-yiabkhaziaxn--vgan" + + "-qoaxn--vgsy-qoa0jevnakershuscultureggioemiliaromagnamsosnowiech" + + "oyodobashichikashukujitawaraumalborkasaokamiminersantabarbaraxn-" + + "-vgu402coguchikuzenxn--vhquvaroyxn--vler-qoaxn--vre-eiker-k8axn-" + + "-vrggt-xqadxn--vry-yla5gxn--vuq861bjarkoyukuhashimoichinosekigah" + + "araxn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1collection" + + "xn--wgbl6axn--xhq521bjerkreimbamblebesbyglandroverhallaakesvuemi" + + "elecceu-2xn--xkc2al3hye2axn--xkc2dl3a5ee0handsonxn--y9a3aquarium" + + "issilevangerxn--yer-znaturbruksgymnxn--yfro4i67oxn--ygarden-p1ax" + + "n--ygbi2ammxn--3e0b707exn--ystre-slidre-ujbjugnieznord-frontierx" + + "n--zbx025dxn--zf0ao64axn--zf0avxn--3hcrj9cistrondheimmobilieniss" + + "hingucciprianiigataishinomakinkobayashikaoirmitakeharaxn--zfr164" + + "blackfridayurihonjournalistjohninohekinannestadivttasvuotnakanii" + + "kawatanaguraxnbayxz" // 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 @@ -522,8860 +523,8891 @@ const text = "9guacuiababia-goracleaningroks-theatree164-baltimore-og-romsdali" // [15 bits] text index // [ 6 bits] text length var nodes = [...]uint32{ - 0x32bd43, - 0x3ac204, - 0x2e8b86, - 0x2fe083, - 0x2fe086, - 0x389b46, - 0x3b0ec3, - 0x31f984, - 0x309b87, - 0x2e87c8, + 0x324003, + 0x3ac784, + 0x2e6d06, + 0x2f86c3, + 0x2f86c6, + 0x38e946, + 0x3b2f83, + 0x316b04, + 0x3280c7, + 0x2e6948, 0x1a000c2, - 0x1f3dd07, - 0x375009, - 0x2c444a, - 0x2c444b, - 0x22d043, - 0x2342c5, - 0x2206702, - 0x2483c4, - 0x25ba43, - 0x331e45, - 0x260dcc2, - 0x32eec3, - 0x2a1e744, - 0x30b345, - 0x2e240c2, - 0x26dc8e, - 0x253f83, - 0x3a7b46, - 0x3201842, - 0x2d02c7, - 0x236c86, - 0x3604b02, - 0x227483, - 0x280a84, - 0x2165c6, - 0x39fc48, - 0x289886, - 0x26f844, - 0x3a00b02, - 0x34a789, - 0x217307, - 0x200f46, - 0x274909, - 0x2fccc8, - 0x346d44, - 0x368ac6, - 0x255fc6, - 0x3e017c2, - 0x23938f, - 0x205b8e, - 0x2199c4, - 0x215ac5, - 0x32bc45, - 0x2e1d89, - 0x23cc09, - 0x216dc7, - 0x21e046, - 0x248903, - 0x4220f02, - 0x222e83, - 0x317cca, - 0x46020c3, - 0x248d45, - 0x2ffe82, - 0x38a8c9, - 0x4e02442, - 0x20c3c4, - 0x3b89c6, - 0x336d45, - 0x36c084, - 0x5637884, - 0x20a683, - 0x233684, - 0x5a026c2, - 0x250bc4, - 0x5e6c7c4, - 0x398e8a, + 0x1f3f4c7, + 0x378d49, + 0x2c3d8a, + 0x2c3d8b, + 0x234283, + 0x235a45, + 0x2203782, + 0x3c3f44, + 0x23be43, + 0x327905, + 0x260e2c2, + 0x3425c3, + 0x2a1f004, + 0x331f05, + 0x2e12502, + 0x270d0e, + 0x251a03, + 0x3a7ac6, + 0x3202e82, + 0x2cf107, + 0x238046, + 0x3602a42, + 0x223743, + 0x280904, + 0x2171c6, + 0x3381c8, + 0x289106, + 0x271dc4, + 0x3a00ac2, + 0x34c289, + 0x215c87, + 0x331a86, + 0x2fb689, + 0x36dc08, + 0x34a384, + 0x36a106, + 0x248746, + 0x3e03082, + 0x22a54f, + 0x211b0e, + 0x216684, + 0x213985, + 0x323f05, + 0x2e3949, + 0x23ec89, + 0x2179c7, + 0x21e906, + 0x238a03, + 0x42197c2, + 0x2197c3, + 0x30d24a, + 0x4631643, + 0x255b85, + 0x2fae02, + 0x38f789, + 0x4e03002, + 0x204dc4, + 0x203006, + 0x32cec5, + 0x36f104, + 0x5624404, + 0x21c183, + 0x234dc4, + 0x5a04182, + 0x23afc4, + 0x5f8d7c4, + 0x37bc4a, 0x6200882, - 0x3b7607, - 0x206288, - 0x7202202, - 0x37e987, - 0x22d3c4, - 0x2c1807, - 0x22d3c5, - 0x351647, - 0x3cbf86, - 0x2ad604, - 0x32ec45, - 0x25bc47, - 0x82052c2, - 0x244683, - 0x20b582, - 0x3607c3, - 0x860d242, - 0x283a05, - 0x8a00202, - 0x243f44, - 0x2e1a05, - 0x219907, - 0x21f2ce, - 0x2b0444, - 0x265604, - 0x218a43, - 0x371bc9, - 0x257f0b, - 0x269488, - 0x2746c8, - 0x38c288, - 0x28da08, - 0x346b8a, - 0x351547, - 0x2c7086, - 0x8e4a0c2, - 0x309243, - 0x3ce603, - 0x3d0044, - 0x309283, - 0x3639c3, - 0x1739742, - 0x9202c42, - 0x27fe45, - 0x39eb86, - 0x281084, - 0x369247, - 0x250a06, - 0x2ba9c4, - 0x389207, - 0x203a83, - 0x96cb182, - 0x9a25a42, - 0x9e25802, - 0x225806, - 0xa200282, - 0x2850c5, - 0x33ac83, - 0x3c0604, - 0x2ef704, - 0x2ef705, - 0x3c4703, - 0xa64ce83, - 0xab3b5c2, - 0x28cf05, - 0x3da30b, - 0x2c004b, - 0x22afc4, - 0x3dc049, - 0x207fc4, - 0xae08202, - 0x208a43, - 0x208fc3, - 0xb201a42, - 0x2ee503, - 0x20a94a, - 0xb6010c2, - 0x2dca05, - 0x2e0f4a, - 0x38b104, - 0x20b083, - 0x20b944, + 0x3ba4c7, + 0x212208, + 0x7204602, + 0x3bda07, + 0x22f344, + 0x2c1247, + 0x22f345, + 0x361307, + 0x326546, + 0x28c784, + 0x342345, + 0x2774c7, + 0x8a02cc2, + 0x245a03, + 0x20bd02, + 0x36af43, + 0x8e09fc2, + 0x282e45, + 0x9200202, + 0x2452c4, + 0x3a9905, + 0x2165c7, + 0x366b8e, + 0x2b1b04, + 0x263a84, + 0x20fc03, + 0x268309, + 0x26a0cb, + 0x27e9c8, + 0x2fb448, + 0x353748, + 0x28dc48, + 0x34a1ca, + 0x361207, + 0x2c6606, + 0x9682702, + 0x375fc3, + 0x3cb183, + 0x3ccb84, + 0x376003, + 0x363c03, + 0x173b542, + 0x9a019c2, + 0x27fec5, + 0x339e46, + 0x235804, + 0x37ab87, + 0x23ae06, + 0x2ba3c4, + 0x394487, + 0x2019c3, + 0x9ecab82, + 0xa21c342, + 0xa61c102, + 0x21c106, + 0xaa00282, + 0x284505, + 0x33ca83, + 0x3c2804, + 0x2e99c4, + 0x2e99c5, + 0x3c6083, + 0xae4af03, + 0xb33d3c2, + 0x28d145, + 0x3dc00b, + 0x3c65cb, + 0x226804, + 0x204389, + 0x205504, + 0xb605742, + 0x205f43, + 0x207583, + 0xba08d42, + 0x2ed10a, + 0xbe09002, + 0x3c41c5, + 0x2df2ca, + 0x390144, + 0x20b803, + 0x20c0c4, + 0x20d3c3, + 0x20d3c4, + 0x20d3c7, + 0x20e185, + 0x20ec06, + 0x20eec6, + 0x212fc3, + 0x216a08, 0x20c483, - 0x20c484, - 0x20c487, - 0x20db85, - 0x210d86, - 0x211146, - 0x212103, - 0x215e08, - 0x20e383, - 0xba1c742, - 0x247308, - 0x37868b, - 0x220808, - 0x221346, - 0x221e87, - 0x225088, - 0xca07c02, - 0xcf25802, - 0x30b488, - 0x219047, - 0x314885, - 0x314888, - 0xd2bdcc8, - 0x2d4803, - 0x228bc4, - 0x389bc2, - 0xd629c02, - 0xda43fc2, - 0xe22b882, - 0x22b883, - 0xe605cc2, - 0x30f943, - 0x239944, - 0x212283, - 0x3cbd04, - 0x30ab0b, - 0x23af03, - 0x2ea246, - 0x23af04, - 0x2b920e, - 0x381c85, - 0x3a7c48, - 0x235dc7, - 0x235dca, - 0x226e43, - 0x3ac007, - 0x2580c5, - 0x22fc84, - 0x256786, - 0x256787, - 0x312944, - 0x22f5c7, - 0xea1f604, - 0x398b44, - 0x398b46, - 0x25b444, - 0x3c4e86, - 0x20b383, - 0x3d1dc8, - 0x20b388, - 0x2655c3, - 0x2ee4c3, - 0x343dc4, - 0x353ec3, - 0xf235d82, - 0xf68d142, - 0x208183, - 0x242d46, - 0x28ed83, - 0x23ab04, - 0xfa17b02, - 0x308183, - 0x217b03, - 0x212f82, - 0xfe014c2, - 0x2c5006, - 0x234f87, - 0x275487, - 0x209e85, - 0x396d84, - 0x29b045, - 0x23f907, - 0x2eb4c9, - 0x2fed86, - 0x300c48, - 0x3109c6, - 0x1022ec82, - 0x3019c8, - 0x3037c6, - 0x2d4b85, - 0x321b07, - 0x323144, - 0x323145, - 0x10731a84, - 0x331a88, - 0x10a0a602, - 0x10e00482, - 0x30c486, + 0xc21c782, + 0x246648, + 0x38764b, + 0x21fe48, + 0x220c06, + 0x221187, + 0x224f08, + 0xd205142, + 0xd6bfa42, + 0x332048, + 0x210207, + 0x309b05, + 0x309b08, + 0xdac8208, + 0x2a9e43, + 0x22b9c4, + 0x38e9c2, + 0xde2bd82, + 0xe228b82, + 0xea2c542, + 0x22c543, + 0xee07982, + 0x305b43, + 0x238fc4, + 0x207983, + 0x31f8c4, + 0x332c0b, + 0x280c03, + 0x2e4a86, + 0x280c04, + 0x2b800e, + 0x384a45, + 0x3a7bc8, + 0x2fa347, + 0x2fa34a, + 0x223103, + 0x3ac587, + 0x26a285, + 0x231cc4, + 0x254146, + 0x254147, + 0x2f6e04, + 0x22ee47, + 0xf309544, + 0x37b904, + 0x37b906, + 0x2595c4, + 0x3a8c46, + 0x20bb03, + 0x3b9a08, + 0x20bb08, + 0x263a43, + 0x2ed0c3, + 0x3453c4, + 0x356ac3, + 0xfa47502, + 0xfe8d382, + 0x2056c3, + 0x243e86, + 0x342883, + 0x380c04, + 0x10216482, + 0x24ab83, + 0x216483, + 0x213e42, + 0x10600d42, + 0x2c4586, + 0x236707, + 0x3be887, + 0x3c6a85, + 0x39ad84, + 0x290e85, + 0x239b07, + 0x2dbc49, + 0x2e1b06, + 0x2e5d88, + 0x2fd486, + 0x10a27f02, + 0x3db188, + 0x2fe246, + 0x227f05, + 0x3184c7, + 0x318b04, + 0x318b05, + 0x10f27544, + 0x327548, + 0x11214c42, + 0x11600482, + 0x212746, 0x200488, - 0x358345, + 0x358ec5, 0x359946, - 0x35e748, - 0x37c508, - 0x11205f85, - 0x11625344, - 0x2448c7, - 0x11a07a42, - 0x11ed5e42, - 0x13202782, - 0x3b8ac5, - 0x2a5f45, - 0x377c46, - 0x3a0ec7, - 0x22c487, - 0x13a2d7c3, - 0x2df287, - 0x348dc8, - 0x1da2d989, - 0x26de47, - 0x22de07, - 0x22e808, - 0x22f006, - 0x22f786, - 0x230bcc, - 0x23230a, - 0x232c87, - 0x23418b, - 0x234dc7, - 0x234dce, - 0x1de35c44, - 0x236204, - 0x239807, - 0x260147, - 0x23c4c6, - 0x23c4c7, - 0x337307, - 0x1e22bdc2, - 0x23de06, - 0x23de0a, - 0x23e20b, - 0x23fec7, - 0x240945, - 0x2414c3, - 0x241b06, - 0x241b07, - 0x272803, - 0x1e600102, - 0x24238a, - 0x1eb76cc2, - 0x1ee487c2, - 0x1f247002, - 0x1f636d82, - 0x247745, - 0x248484, - 0x1fe37982, - 0x250c45, - 0x231543, - 0x2080c5, - 0x204a44, - 0x20bc84, - 0x21f906, - 0x27f946, - 0x2a7843, - 0x3ba9c4, - 0x275783, - 0x20e02942, - 0x222204, - 0x244e46, - 0x222205, - 0x2576c6, - 0x321c08, - 0x28fd84, - 0x2102c8, - 0x39fa05, - 0x39f748, - 0x2bef86, + 0x35b9c8, + 0x3804c8, + 0x11a0e745, + 0x11e22584, + 0x245c47, + 0x12204f82, + 0x126291c2, + 0x13a03102, + 0x203105, + 0x2864c5, + 0x386c06, + 0x34f647, + 0x22db47, + 0x1422f743, + 0x30f807, + 0x37af08, + 0x1e22f909, + 0x270ec7, + 0x22fd87, + 0x2309c8, + 0x2311c6, + 0x2317c6, + 0x2324cc, + 0x23394a, + 0x2342c7, + 0x23590b, + 0x236547, + 0x23654e, + 0x1e6373c4, + 0x2375c4, + 0x238e87, + 0x25e687, + 0x23e546, + 0x23e547, + 0x344b07, + 0x26f503, + 0x1ea2ca82, + 0x23f306, + 0x23f30a, + 0x23fd0b, + 0x241187, + 0x241c05, + 0x242143, + 0x242c46, + 0x242c47, + 0x2eaf03, + 0x1ee00102, + 0x2434ca, + 0x1f37a202, + 0x1f647542, + 0x1fa46342, + 0x1fe38142, + 0x246a85, + 0x247204, + 0x20624502, + 0x23b045, + 0x23b843, + 0x205605, + 0x202984, + 0x20adc4, + 0x3671c6, + 0x27f2c6, + 0x2a75c3, + 0x3c0544, + 0x3beb83, + 0x21607682, + 0x221504, + 0x2461c6, + 0x221505, + 0x249f46, + 0x3185c8, + 0x225304, + 0x22e988, + 0x337f85, + 0x33aa08, + 0x2bc7c6, 0x359d87, - 0x26ec04, - 0x2226ec06, - 0x22645dc3, - 0x39cbc3, - 0x348188, - 0x332c04, - 0x22b5ed87, - 0x232de7c6, - 0x2de7c9, - 0x336088, - 0x38ca48, - 0x34a204, - 0x3c2b83, - 0x23e8c2, - 0x23652282, - 0x23a03e02, - 0x3c7983, - 0x23e12ac2, - 0x2f0a04, - 0x36f146, - 0x309cc5, - 0x21b1c3, - 0x2b5f07, - 0x3306c3, - 0x338108, - 0x214ec5, - 0x25cdc3, - 0x2e1985, - 0x2e1ac4, - 0x3034c6, - 0x217004, - 0x217b86, - 0x219846, - 0x206804, - 0x235183, - 0x2420d602, - 0x2479e645, + 0x2877c4, + 0x22a877c6, + 0x22e3c8c3, + 0x3a03c3, + 0x2e6648, + 0x329044, + 0x23360887, + 0x23add286, + 0x2dd289, + 0x32d3c8, + 0x268a48, + 0x329bc4, + 0x204c03, + 0x2403c2, + 0x23e50002, + 0x24201d42, + 0x207ec3, + 0x2460ce02, + 0x2eae84, + 0x372c86, + 0x328205, + 0x21b703, + 0x2b6f47, + 0x3301c3, + 0x336588, + 0x210a05, + 0x25b603, + 0x3a9885, + 0x3a99c4, + 0x3006c6, + 0x212a46, + 0x216506, + 0x203884, + 0x236903, + 0x24a08682, + 0x24f39905, 0x200843, - 0x24e16042, - 0x22d943, - 0x246385, - 0x25233743, - 0x25a33749, - 0x25e00942, - 0x26605242, - 0x28ca45, - 0x213986, - 0x20da06, - 0x2d0f48, - 0x2d0f4b, - 0x32dc4b, - 0x20a085, - 0x2cc809, - 0x1601982, - 0x2e8e88, - 0x21f084, - 0x26e01242, - 0x337943, - 0x27660306, - 0x27db08, - 0x27a01f02, - 0x310588, - 0x27e758c2, - 0x33f30a, - 0x282d2003, - 0x28b75646, - 0x399608, - 0x315848, - 0x3c0b46, - 0x386d47, - 0x239587, - 0x255b4a, - 0x38b184, - 0x35d884, - 0x374a49, - 0x28fabc05, - 0x205d86, - 0x219243, - 0x271e84, - 0x29202404, - 0x202407, - 0x29757a47, - 0x26e4c4, - 0x378c45, - 0x377d08, - 0x3a4587, - 0x249487, - 0x29a19d02, - 0x3c3844, - 0x293548, - 0x24aa44, - 0x24e444, - 0x24e805, - 0x24e947, - 0x29e4dbc9, - 0x250104, - 0x250f49, - 0x251188, - 0x251984, - 0x251987, - 0x2a252083, - 0x252747, - 0x1603582, - 0x16b0f82, - 0x253946, - 0x253fc7, - 0x254244, - 0x255047, - 0x256bc7, - 0x257843, - 0x2b06c2, - 0x20c742, - 0x2747c3, - 0x3be744, - 0x3be74b, - 0x2a6747c8, - 0x25c784, - 0x258ec5, - 0x25a687, - 0x25bec5, - 0x2e0b8a, - 0x25c6c3, - 0x2aa0e282, - 0x20e284, - 0x25ff09, - 0x263f83, - 0x264047, - 0x38c6c9, - 0x3d77c8, - 0x238983, - 0x27cb87, - 0x27dfc9, - 0x23fac3, - 0x2872c4, - 0x288c09, - 0x28ab06, - 0x219c03, - 0x205282, - 0x236883, - 0x2b0d87, - 0x236885, - 0x3cb4c6, - 0x2aea44, - 0x302fc5, - 0x279d03, - 0x212346, - 0x237482, - 0x24ce44, - 0x2ae0a1c2, - 0x2b22b083, - 0x2b604182, - 0x24c203, - 0x2115c4, - 0x2115c7, - 0x38b206, - 0x2023c2, - 0x2ba02382, - 0x321e04, - 0x2be0c602, - 0x2c212782, - 0x246644, - 0x246645, - 0x3cae05, - 0x365f46, - 0x2c609d82, - 0x360245, - 0x3c53c5, - 0x2270c3, - 0x211746, - 0x21c105, - 0x225782, - 0x357f85, - 0x225784, - 0x226203, - 0x228d03, - 0x2ca05142, - 0x233b47, - 0x251b04, - 0x251b09, - 0x271d84, - 0x28d503, - 0x39bf48, - 0x2cea5dc4, - 0x2a5dc6, - 0x2ab3c3, - 0x259703, - 0x220583, - 0x2d2ee042, - 0x300002, - 0x2d600642, - 0x33cd88, - 0x220108, - 0x3b1646, - 0x25c585, - 0x22c045, - 0x201887, - 0x2da78745, - 0x2068c2, - 0x2de96bc2, - 0x2e200042, - 0x31ed08, - 0x301905, - 0x2f5f44, - 0x257605, - 0x24a487, - 0x273244, - 0x242282, - 0x2e605002, - 0x34e6c4, - 0x221807, - 0x28f307, - 0x351604, - 0x3ced83, - 0x265504, - 0x265508, - 0x22fac6, - 0x25660a, - 0x3575c4, - 0x295548, - 0x28af44, - 0x221f86, - 0x296b84, - 0x3b8dc6, - 0x251dc9, - 0x245847, - 0x21f183, - 0x2ea07102, - 0x34a483, - 0x208402, - 0x2ee01d02, - 0x2f3206, - 0x380e08, - 0x2a7747, - 0x22a1c9, - 0x295109, - 0x2a8c85, - 0x2aa589, - 0x2aad45, - 0x2aae89, - 0x2abe05, - 0x2ac848, - 0x2f20c644, - 0x2f657987, - 0x22e1c3, - 0x2aca47, - 0x22e1c6, - 0x2ace87, - 0x2a48c5, - 0x2ba0c3, - 0x2fa320c2, - 0x20b2c4, - 0x2fe2bf42, - 0x302373c2, - 0x33c146, - 0x206205, - 0x2af987, - 0x32f343, - 0x363944, - 0x203f43, - 0x2c6883, - 0x306067c2, - 0x30e03d82, - 0x389c44, - 0x36b103, - 0x2fc5c5, - 0x31205e42, - 0x31a00bc2, - 0x2da6c6, - 0x332d44, - 0x321644, - 0x32164a, - 0x322005c2, - 0x244b03, - 0x2157ca, - 0x219c88, - 0x32622884, - 0x2005c3, - 0x32a038c3, - 0x281709, - 0x252d49, - 0x2b6006, - 0x32e19e43, - 0x21c445, - 0x31de8d, - 0x219e46, - 0x21bccb, - 0x33204c02, - 0x2b2c48, - 0x36215f02, - 0x36604c82, - 0x375e05, - 0x36a01b82, - 0x230047, - 0x2adec7, - 0x204383, - 0x341788, - 0x36e06102, - 0x3b9c84, - 0x219583, - 0x328085, - 0x23e906, - 0x220d44, - 0x2ee483, - 0x2b1e03, - 0x37202d42, - 0x20a004, - 0x3bc2c5, - 0x2b0987, - 0x27a143, - 0x2b1403, - 0x16b14c2, - 0x2b14c3, - 0x2b1d83, - 0x376035c2, - 0x3b7d44, - 0x27fb46, - 0x2e6343, - 0x2b22c3, - 0x37a4d442, - 0x24d448, - 0x2b3204, - 0x368486, - 0x25d187, - 0x29b3c6, - 0x36f744, - 0x45a015c2, - 0x22e08b, - 0x2f90ce, - 0x21450f, - 0x2b0fc3, - 0x4625d602, - 0x1637542, - 0x46603882, - 0x295ac3, - 0x209503, - 0x21d046, - 0x2eb746, - 0x21ac87, - 0x30e184, - 0x46a13ac2, - 0x46e0a3c2, - 0x241385, - 0x2fa2c7, - 0x2b4ac6, - 0x47248702, - 0x32e844, - 0x2bab43, - 0x47653a42, - 0x47b70e03, - 0x2bbb44, - 0x2c0a89, - 0x47ec80c2, - 0x48203942, - 0x203945, - 0x486c8e02, - 0x48a06ac2, - 0x35be87, - 0x3b2349, - 0x37528b, - 0x239345, - 0x26a549, - 0x26d1c6, - 0x38f987, - 0x48e0e984, - 0x3d5849, - 0x37b387, - 0x20f607, - 0x22bb83, - 0x2b2ac6, - 0x32a947, - 0x20bec3, - 0x3ca646, - 0x4960ac02, - 0x49a339c2, - 0x3b5543, - 0x38aa85, - 0x21ee87, - 0x2eb846, - 0x236805, - 0x251304, - 0x2a3dc5, - 0x38bc44, - 0x49e00f82, - 0x274d87, - 0x2c5c44, - 0x23bf84, - 0x34998d, - 0x2d9189, - 0x22be88, - 0x203bc4, - 0x3b9445, - 0x20df07, - 0x210184, - 0x267b87, - 0x357285, - 0x4a214a04, - 0x2b4085, - 0x262c44, - 0x2b1a46, - 0x3a0cc5, - 0x4a624ec2, - 0x30c403, - 0x35cf44, - 0x35cf45, - 0x3520c6, - 0x236945, - 0x238904, - 0x34c603, - 0x4aa12a06, - 0x2676c5, - 0x282305, - 0x3a0dc4, - 0x2e5a43, - 0x2e5a4c, - 0x4aeb0a82, - 0x4b203502, - 0x4b600b42, - 0x214903, - 0x214904, - 0x4ba08002, - 0x37e508, - 0x3cb585, - 0x24b304, - 0x367a46, - 0x4be0f1c2, - 0x4c205e82, - 0x4c601442, - 0x28c045, - 0x2066c6, - 0x357984, - 0x216b06, - 0x371f86, - 0x210043, - 0x4cb4b2ca, - 0x271cc5, - 0x317c83, - 0x209b86, - 0x209b89, - 0x224207, - 0x2a4ec8, - 0x2fcb89, - 0x331688, - 0x226b86, - 0x218a03, - 0x4cedf302, - 0x3a1788, - 0x4d24ab82, - 0x4d6024c2, - 0x22a243, - 0x2e43c5, - 0x26ae44, - 0x211ec9, - 0x2e14c4, - 0x21a048, - 0x4de08443, - 0x4e30af84, - 0x2139c8, - 0x3498c7, - 0x4e65e5c2, - 0x23f1c2, - 0x32bbc5, - 0x265dc9, - 0x205e03, - 0x281304, - 0x31de44, - 0x20df83, - 0x2835ca, - 0x4ea01582, - 0x4ee0b102, - 0x2cb103, - 0x38e683, - 0x162d842, - 0x308a43, - 0x4f202dc2, - 0x4f600c02, - 0x4fb216c4, - 0x3dcb86, - 0x39ba06, - 0x226244, - 0x279343, - 0x3bb343, - 0x4fecb283, - 0x23e586, - 0x3a4dc5, - 0x2cc1c7, - 0x2cee45, - 0x2d0006, - 0x2d1208, - 0x2d1406, - 0x207304, - 0x29c1cb, - 0x2d6043, - 0x2d6045, - 0x2d6c88, - 0x2104c2, - 0x35c182, - 0x502477c2, - 0x50600e82, - 0x200e83, - 0x50a6cec2, - 0x26cec3, - 0x2d7683, - 0x51224682, - 0x516dc3c6, - 0x2594c6, - 0x51ab2e42, - 0x51e09002, - 0x52228d42, - 0x52645ec2, - 0x52a1a282, - 0x52e01342, - 0x20ed83, - 0x2c9e05, - 0x327d86, - 0x53205184, - 0x244c4a, - 0x3aa406, - 0x20c844, - 0x201c43, - 0x53e02a42, - 0x202642, - 0x22d903, - 0x54206b43, - 0x366547, - 0x3a0bc7, - 0x55ee7247, - 0x3cd307, - 0x227983, - 0x35fc8a, - 0x235fc4, - 0x31b684, - 0x31b68a, - 0x22c5c5, - 0x56205d42, - 0x255003, - 0x56600602, - 0x251ac3, - 0x34a443, - 0x56e00582, - 0x348d44, - 0x201a84, - 0x3bf805, - 0x322885, - 0x2aa2c6, - 0x2b6c06, - 0x5724fd42, - 0x576013c2, - 0x37a405, - 0x2591d2, - 0x34f1c6, - 0x24e703, - 0x304c46, - 0x2b4545, - 0x160a982, - 0x5fa0af02, - 0x3743c3, - 0x20af03, - 0x288883, - 0x5fe1a682, - 0x23d443, - 0x6060cc82, - 0x2a7503, - 0x3b7d88, - 0x2a8b03, - 0x2a8b06, - 0x32f7c7, - 0x324a06, - 0x324a0b, - 0x20c787, - 0x347f84, - 0x60e00e42, - 0x3cb405, - 0x61212b03, - 0x2050c3, - 0x28e805, - 0x332f43, - 0x61b32f46, - 0x2e900a, - 0x2a3083, - 0x2164c4, - 0x2003c6, - 0x2d4f86, - 0x61e3cf83, - 0x363807, - 0x281607, - 0x29dbc5, - 0x2ec406, - 0x267703, - 0x64a11983, - 0x64e01002, - 0x6533ef04, - 0x3c2249, - 0x3c7a05, - 0x22c244, - 0x34e0c8, - 0x2e6185, - 0x656e75c5, - 0x240ac9, - 0x201003, - 0x248744, - 0x65a02142, - 0x213d03, - 0x65e76402, - 0x276406, - 0x1678842, - 0x662201c2, - 0x28bf48, - 0x291f83, - 0x2b3fc7, - 0x2b1545, - 0x2b3b85, - 0x324c8b, - 0x2e8146, - 0x324e86, - 0x2e96c6, - 0x27f1c4, - 0x2c0c86, - 0x666d9d88, - 0x23afc3, - 0x23d903, - 0x23d904, - 0x38c084, - 0x316147, - 0x2ed4c5, - 0x66aed602, - 0x66e06a82, - 0x6761b085, - 0x2b8044, - 0x2daccb, - 0x2ef608, - 0x2525c4, - 0x67a2bd02, - 0x67e23802, - 0x3c4e03, - 0x2f15c4, - 0x2f1885, - 0x2f2247, - 0x2f5a84, - 0x351704, - 0x68213c42, - 0x37ab09, - 0x2f6bc5, - 0x239605, - 0x2f7745, - 0x68613c43, - 0x2f8644, - 0x2f864b, - 0x2f8984, - 0x2f8c4b, - 0x2f9c85, - 0x21464a, - 0x2fa7c8, - 0x2fa9ca, - 0x2fb203, - 0x2fb20a, - 0x68e0a0c2, - 0x69241f42, - 0x6961f4c3, - 0x69afed02, - 0x2fed03, - 0x69f52a42, - 0x6a33b402, - 0x2ffbc4, - 0x215f46, - 0x216845, - 0x300e43, - 0x32c306, - 0x216345, - 0x2e4a44, - 0x6a600902, - 0x2a1344, - 0x2cc48a, - 0x336fc7, - 0x3332c6, - 0x3abe47, - 0x23de43, - 0x2bbb88, - 0x37eb4b, - 0x2c12c5, - 0x2a9c05, - 0x2a9c06, - 0x2ec744, - 0x210f48, - 0x222b03, - 0x255ec4, - 0x255ec7, - 0x347bc6, - 0x3ccb06, - 0x2b904a, - 0x250fc4, - 0x2fba4a, - 0x6ab30086, - 0x330087, - 0x258f47, - 0x275dc4, - 0x275dc9, - 0x2ff605, - 0x3cc44b, - 0x2ee903, - 0x217d43, - 0x6ae1d583, - 0x2ca004, - 0x6b200682, - 0x229446, - 0x6b6b9e45, - 0x304e85, - 0x253b86, - 0x29fe44, - 0x6ba02542, - 0x241504, - 0x6be16f82, - 0x2d5745, - 0x32ffc4, - 0x6ca1b683, - 0x6ce01e82, + 0x25612602, + 0x22f8c3, + 0x23ce85, + 0x25a34e83, + 0x26234e89, + 0x26600942, + 0x26e07bc2, + 0x28cc85, + 0x214b46, + 0x208a86, + 0x2ceb88, + 0x2ceb8b, + 0x3293cb, + 0x2fe6c5, + 0x2cb2c9, + 0x1600b42, + 0x2e7008, + 0x204684, + 0x27601bc2, + 0x34bf03, + 0x27e5e846, + 0x25d348, + 0x28201a02, + 0x28e248, + 0x28669102, + 0x340aca, + 0x28ad0703, + 0x29379386, + 0x37c3c8, + 0x30ad48, + 0x3c2d46, + 0x38acc7, + 0x22a747, + 0x2482ca, + 0x3901c4, + 0x35e684, + 0x3786c9, + 0x297ac185, + 0x211d06, + 0x210403, + 0x24fa44, + 0x29a227c4, + 0x331247, + 0x29eaabc7, + 0x2a1144, + 0x387c05, + 0x386cc8, + 0x3a47c7, + 0x247847, + 0x2a2143c2, + 0x3c51c4, + 0x294548, + 0x2494c4, + 0x24bd44, + 0x24c6c5, + 0x24c807, + 0x2a64e689, + 0x24e184, + 0x24ee09, + 0x24f048, + 0x24f7c4, + 0x24f7c7, + 0x2aa4fe03, + 0x250a47, + 0x16014c2, + 0x16b2642, + 0x251a46, + 0x251ec7, + 0x252304, + 0x253107, + 0x2547c7, + 0x255043, + 0x2b1d82, + 0x20d682, + 0x2fb543, + 0x3c0fc4, + 0x3c0fcb, + 0x2aefb548, + 0x25afc4, + 0x2572c5, + 0x258807, + 0x25a1c5, + 0x2def0a, + 0x25af03, + 0x2b208142, + 0x20c384, + 0x25e449, + 0x2628c3, + 0x262987, + 0x353b89, + 0x3d9dc8, + 0x229b43, + 0x27dbc7, + 0x27e549, + 0x239cc3, + 0x286b44, + 0x287dc9, + 0x28a706, + 0x339283, + 0x202ec2, + 0x237c43, + 0x2b2447, + 0x237c45, + 0x3bd6c6, + 0x2d7004, + 0x3cd145, + 0x27b483, + 0x213206, + 0x211603, + 0x204582, + 0x24aec4, + 0x2b6268c2, + 0x2ba268c3, + 0x2be020c2, + 0x24a403, + 0x20f344, + 0x20f347, + 0x390246, + 0x27cec2, + 0x2c25ec42, + 0x3187c4, + 0x2c60d542, + 0x2ca19202, + 0x23d144, + 0x23d145, + 0x28c405, + 0x366186, + 0x2ce0f4c2, + 0x32a305, + 0x354585, + 0x223383, + 0x3cf0c6, + 0x20f4c5, + 0x21c082, + 0x359585, + 0x21c084, + 0x225243, + 0x225483, + 0x2d209102, + 0x2dac07, + 0x24f244, + 0x24f249, + 0x24f944, + 0x286343, + 0x39f748, + 0x2d686344, + 0x286346, + 0x2a57c3, + 0x257b03, + 0x224943, + 0x2dae9882, + 0x2faf82, + 0x2de00642, + 0x33e548, + 0x342a88, + 0x3b3706, + 0x25adc5, + 0x22bc45, + 0x3306c7, + 0x2e26fbc5, + 0x203942, + 0x2e698402, + 0x2ea00042, + 0x315e88, + 0x3db0c5, + 0x2efec4, + 0x249e85, + 0x24b947, + 0x25f444, + 0x2433c2, + 0x2ee08b82, + 0x350584, + 0x217c07, + 0x28f207, + 0x3612c4, + 0x3cbb43, + 0x263984, + 0x263988, + 0x231b06, + 0x253fca, + 0x2aa144, + 0x2967c8, + 0x28ab44, + 0x221286, + 0x2983c4, + 0x203406, + 0x24f509, + 0x23c347, + 0x21fa83, + 0x2f25ce02, + 0x387f43, + 0x205942, + 0x2f616842, + 0x2f5d86, + 0x3836c8, + 0x2a74c7, + 0x225a09, + 0x2aba89, + 0x2a9385, + 0x2ab689, + 0x2ac745, + 0x2ad585, + 0x2ae048, + 0x2fa07a44, + 0x2fe55187, + 0x230143, + 0x2ae247, + 0x230146, + 0x2ae647, + 0x2a4ac5, + 0x2b9ac3, + 0x30233702, + 0x20ba44, + 0x3062cc02, + 0x30a05dc2, + 0x3cc0c6, + 0x212185, + 0x2b1047, + 0x326fc3, + 0x363b84, 0x201e83, - 0x237086, - 0x6d209482, - 0x391a48, - 0x224084, - 0x224086, - 0x38ef06, - 0x6d65a744, - 0x212985, - 0x225248, - 0x226087, - 0x246747, - 0x24674f, - 0x293446, - 0x231c83, - 0x23c644, - 0x20e4c3, - 0x2220c4, - 0x254144, - 0x6da02c02, - 0x28ce43, - 0x338dc3, - 0x6de02002, - 0x227683, - 0x2259c3, - 0x20dc0a, - 0x273b07, - 0x25984c, - 0x259b06, - 0x25c186, - 0x25ce87, - 0x6e22ec47, - 0x268049, - 0x247444, - 0x269ac4, - 0x6e600ec2, - 0x6ea01bc2, - 0x2b9406, - 0x363604, - 0x28d2c6, - 0x22f0c8, - 0x38ab44, - 0x230086, - 0x20d9c5, - 0x6ee83048, - 0x241c03, - 0x287a45, - 0x288203, - 0x239703, - 0x239704, - 0x20e243, - 0x6f24d882, - 0x6f601282, - 0x2ee7c9, - 0x28be45, - 0x28c144, - 0x317f05, - 0x297104, - 0x3a1fc7, - 0x36aac5, - 0x6fa3d804, - 0x23d808, - 0x2d9f46, - 0x2dcb04, - 0x2e1348, - 0x2e1c47, - 0x6fe037c2, - 0x2e8684, - 0x303104, - 0x2c1a07, - 0x70207c44, - 0x22b302, - 0x70603842, - 0x203843, - 0x203844, - 0x29e943, - 0x29e945, - 0x70a388c2, - 0x2fff05, - 0x2801c2, - 0x307d85, - 0x3b49c5, - 0x70e15042, - 0x217a84, - 0x71203002, - 0x25e406, - 0x2ba6c6, - 0x265f08, - 0x2c2988, - 0x33c0c4, - 0x305d85, - 0x3a6509, - 0x20a104, - 0x2e8fc4, - 0x206903, - 0x71655c85, - 0x243185, - 0x2a15c4, - 0x35248d, - 0x308102, - 0x353f43, - 0x354c83, - 0x71a02702, - 0x391505, - 0x220f87, - 0x2b9f44, - 0x3cd3c7, - 0x2fcd89, - 0x2cc5c9, - 0x202703, - 0x278688, - 0x2f9889, - 0x2f7a07, - 0x3da885, - 0x37e1c6, - 0x380fc6, - 0x3a60c5, - 0x2d9285, - 0x71e03b42, - 0x27b445, - 0x2b8308, - 0x2c4dc6, - 0x72206ec7, - 0x26e404, - 0x335187, - 0x302c86, - 0x72641542, - 0x351dc6, - 0x30740a, - 0x307c85, - 0x72ae9d02, - 0x72e8f4c2, - 0x33f806, - 0x323448, - 0x7328f4c7, - 0x73639102, - 0x28a5c3, - 0x209786, - 0x224e44, - 0x27e606, - 0x33bd46, - 0x20720a, - 0x331f45, - 0x328c46, - 0x32e243, + 0x2c5e03, + 0x30e03842, + 0x31601cc2, + 0x38ea44, + 0x2dca43, + 0x2f6a45, + 0x31a00f42, + 0x32203702, + 0x2d8946, + 0x329184, + 0x3dacc4, + 0x3dacca, + 0x32a005c2, + 0x245e83, + 0x21368a, + 0x214348, + 0x32e21b84, + 0x2005c3, + 0x33201803, + 0x26c409, + 0x207349, + 0x2b7046, + 0x33614503, + 0x315405, + 0x3b478d, + 0x214506, + 0x21a4cb, + 0x33a03302, + 0x2b4148, + 0x36a16b02, + 0x36e08242, + 0x2e8205, + 0x37201742, + 0x371347, + 0x2022c3, + 0x20f688, + 0x376051c2, 0x32e244, - 0x202742, - 0x332cc3, - 0x73a14942, - 0x2d15c3, - 0x215a44, - 0x2c3184, - 0x73f2358a, - 0x21c4c3, - 0x226c4a, - 0x239dc7, - 0x312e86, - 0x25e2c4, - 0x20c702, - 0x2a6742, - 0x742007c2, - 0x2654c3, - 0x258d07, + 0x210743, + 0x32aa45, + 0x240406, + 0x21da04, + 0x2ed083, + 0x2b3003, + 0x37a150c2, + 0x2fe644, + 0x3bc6c5, + 0x2b2047, + 0x27b8c3, + 0x2b2a03, + 0x16b2ac2, + 0x2b2ac3, + 0x2b2f83, + 0x37e00e02, + 0x3bac04, + 0x27f4c6, + 0x23d303, + 0x2b36c3, + 0x3824b4c2, + 0x24b4c8, + 0x2b4e04, + 0x369ac6, + 0x256e47, + 0x284746, + 0x2aed84, + 0x46601b82, + 0x23000b, + 0x2f378e, + 0x2156cf, + 0x366703, + 0x46e5bd02, + 0x1638902, + 0x472017c2, + 0x296d43, + 0x2092c3, + 0x21d086, + 0x2dbec6, + 0x218d87, + 0x3cb504, + 0x47614c82, + 0x47a10f02, + 0x242b05, + 0x2f1d87, + 0x2b5dc6, + 0x47e47482, + 0x32a244, + 0x2bae03, + 0x48251b42, + 0x48774343, + 0x2bbe44, + 0x2c0549, + 0x48ac7542, + 0x48e01882, + 0x201885, + 0x492c8802, + 0x49604b42, + 0x35d987, + 0x3b6a09, + 0x378fcb, + 0x22a505, + 0x26aa09, + 0x270246, + 0x393bc7, + 0x49a04b44, + 0x3d6a49, + 0x37ed07, + 0x206a07, + 0x22c843, + 0x2b3fc6, + 0x322ec7, + 0x20b003, + 0x371f06, + 0x4a219842, + 0x4a612702, + 0x329a83, + 0x38f945, + 0x21f787, + 0x2dbfc6, + 0x237bc5, + 0x24f1c4, + 0x2a3fc5, + 0x390c84, + 0x4aa01b02, + 0x3be187, + 0x2c51c4, + 0x207244, + 0x20724d, + 0x34ca49, + 0x22cb48, + 0x201b04, + 0x31f985, + 0x20a247, + 0x20a5c4, + 0x266407, + 0x2aa705, + 0x4ae0e504, + 0x2b3145, + 0x261584, + 0x310fc6, + 0x35e105, + 0x4b224382, + 0x2126c3, + 0x3a2a83, + 0x346984, + 0x346985, + 0x361d86, + 0x237d05, + 0x229ac4, + 0x34dfc3, + 0x4b60cd46, + 0x223dc5, + 0x22ae85, + 0x34f544, + 0x2aa1c3, + 0x2aa1cc, + 0x4ba07dc2, + 0x4be01442, + 0x4c20e942, + 0x20e943, + 0x20e944, + 0x4c605542, + 0x353408, + 0x3bd785, + 0x2bd504, + 0x23e3c6, + 0x4ca065c2, + 0x4ce11e02, + 0x4d200c42, + 0x292905, + 0x203746, + 0x2aab04, + 0x217706, + 0x34b306, + 0x227803, + 0x4d737c4a, + 0x2747c5, + 0x30d203, + 0x222306, + 0x3ceec9, + 0x222307, + 0x297688, + 0x36dac9, + 0x326e08, + 0x222e46, + 0x20fbc3, + 0x4da030c2, + 0x3a17c8, + 0x4de49602, + 0x4e205982, + 0x225a83, + 0x2e1985, + 0x29b6c4, + 0x393d09, + 0x3a93c4, + 0x376588, + 0x4ea05983, + 0x4ef33084, + 0x214b88, + 0x207187, + 0x4f32a2c2, + 0x247702, + 0x323e85, + 0x264149, + 0x211d83, + 0x2814c4, + 0x3153c4, + 0x20a2c3, + 0x282a0a, + 0x4f727e02, + 0x4fa0b882, + 0x2cab03, + 0x3928c3, + 0x162f7c2, + 0x3757c3, + 0x4fe1f382, + 0x50200bc2, + 0x50746484, + 0x388586, + 0x26bc04, + 0x27aac3, + 0x3d4c43, + 0x50a00bc3, + 0x240086, + 0x3a5005, + 0x2cac87, + 0x2cdc45, + 0x2cee46, + 0x2d0048, + 0x2d0246, + 0x265cc4, + 0x29cc4b, + 0x2d41c3, + 0x2d41c5, + 0x2d4c48, + 0x203282, + 0x35dc82, + 0x50e46b02, + 0x51204fc2, + 0x214cc3, + 0x5166ff42, + 0x26ff43, + 0x2d5603, + 0x51e23c42, + 0x522da646, + 0x2578c6, + 0x526b4342, + 0x52a075c2, + 0x52e254c2, + 0x5323c9c2, + 0x53618382, + 0x53a02142, + 0x206183, + 0x2c9805, + 0x326406, + 0x53e09c04, + 0x245fca, + 0x3aa986, + 0x20d784, + 0x26a083, + 0x54a05682, + 0x208ac2, + 0x22f883, + 0x54e0ce83, + 0x3bd1c7, + 0x35e007, + 0x56e6f947, + 0x321a47, + 0x229483, + 0x22948a, + 0x265e44, + 0x3125c4, + 0x3125ca, + 0x22dc85, + 0x57211cc2, + 0x2522c3, + 0x57600602, + 0x22c483, + 0x387f03, + 0x57e00582, + 0x37ae84, + 0x3308c4, + 0x3ce845, + 0x319b45, + 0x28ea86, + 0x2aad46, + 0x5824dc02, + 0x58602f42, + 0x312a85, + 0x2575d2, + 0x351086, + 0x271283, + 0x301046, + 0x2ef145, + 0x1607f02, + 0x60a08d82, + 0x378043, + 0x208d83, + 0x282583, + 0x60e18782, + 0x23fc83, + 0x6160dbc2, + 0x2035c3, + 0x3bac48, + 0x26d843, + 0x26d846, + 0x32b747, + 0x31bb46, + 0x31bb4b, + 0x20d6c7, + 0x2e6444, + 0x61e00c02, + 0x3bd605, + 0x6220ce43, + 0x209b43, + 0x32c2c5, + 0x335703, + 0x62b35706, + 0x2e718a, + 0x2a3283, + 0x2170c4, + 0x2003c6, + 0x228306, + 0x62e3f7c3, + 0x363a47, + 0x26c307, + 0x29e485, + 0x281ec6, + 0x223e03, + 0x65bcf303, + 0x65e00a82, + 0x663406c4, + 0x3b9809, + 0x207f45, + 0x227484, + 0x3531c8, + 0x23d505, + 0x6666fcc5, + 0x242249, + 0x331b43, + 0x2474c4, + 0x66a04ac2, + 0x214ec3, + 0x66e7a042, + 0x27a046, + 0x167ce82, + 0x67203482, + 0x292808, + 0x2a2203, + 0x2b3087, + 0x31bdc5, + 0x2e2fc5, + 0x34e14b, + 0x2e2fc6, + 0x34e346, + 0x2e3f06, + 0x280104, + 0x2c0746, + 0x676d7a48, + 0x280cc3, + 0x266a03, + 0x266a04, + 0x2fb244, + 0x30a607, + 0x2e7b45, + 0x67ae7c82, + 0x67e07702, + 0x6861b5c5, + 0x2b5c44, + 0x2d8f4b, + 0x2e98c8, + 0x24de84, + 0x68a2c9c2, + 0x68e1a142, + 0x3a8bc3, + 0x2eba44, + 0x2ebd05, + 0x2ec547, + 0x2efa04, + 0x3613c4, + 0x69214e02, + 0x37e589, + 0x2f0b45, + 0x22a7c5, + 0x2f16c5, + 0x69614e03, + 0x2f2d04, + 0x2f2d0b, + 0x2f3044, + 0x2f330b, + 0x2f4345, + 0x21580a, + 0x2f4b08, + 0x2f4d0a, + 0x2f5543, + 0x2f554a, + 0x69e1c282, + 0x6a203542, + 0x6a628743, + 0x6aaf93c2, + 0x2f93c3, + 0x6af56bc2, + 0x6b33d202, + 0x2fab44, + 0x216b46, + 0x217445, + 0x2fe1c3, + 0x3245c6, + 0x216f45, + 0x22cec4, + 0x6b600902, + 0x2a7b04, + 0x2caf4a, + 0x32d147, + 0x335a86, + 0x3ac3c7, + 0x23f343, + 0x2bbe88, + 0x3bdbcb, + 0x2b7145, + 0x2c0d85, + 0x2c0d86, + 0x26cf04, + 0x3c0688, + 0x21be43, + 0x248644, + 0x248647, + 0x2e6086, + 0x203a86, + 0x2b7e4a, + 0x24ee84, + 0x314eca, + 0x6bb48d46, + 0x348d47, + 0x257347, + 0x276e44, + 0x276e49, + 0x233045, + 0x326a0b, + 0x2e8f43, + 0x212c03, + 0x6be1d5c3, + 0x2c9a04, + 0x6c200682, + 0x224746, + 0x6c6b9845, + 0x301285, + 0x251c86, + 0x2a0304, + 0x6ca03e42, + 0x242184, + 0x6ce129c2, + 0x228ac5, + 0x268804, + 0x6da1bbc3, + 0x6de08dc2, + 0x208dc3, + 0x238446, + 0x6e205fc2, + 0x395a48, + 0x222184, + 0x222186, + 0x393146, + 0x6e6588c4, + 0x20ccc5, + 0x222488, + 0x2250c7, + 0x227547, + 0x22754f, + 0x294446, + 0x231603, + 0x23ee84, + 0x20c5c3, + 0x2213c4, + 0x251dc4, + 0x6ea0ba82, + 0x28d083, + 0x337243, + 0x6ee02442, + 0x223943, + 0x21c2c3, + 0x20e20a, + 0x275b47, + 0x25494c, + 0x6f254c06, + 0x254d86, + 0x256b47, + 0x6f630e07, + 0x25d989, + 0x246784, + 0x262b04, + 0x6fa14d02, + 0x6fe05c82, + 0x2b8206, + 0x363844, + 0x28d506, + 0x231288, + 0x38fa04, + 0x259c46, + 0x208a45, + 0x7028b748, + 0x242d43, + 0x30d485, + 0x2917c3, + 0x22a8c3, + 0x22a8c4, + 0x20c343, + 0x7064b902, + 0x70a033c2, + 0x2e8e09, + 0x292705, + 0x292a04, + 0x293245, + 0x20b444, + 0x3a2007, + 0x35fbc5, + 0x70e3bb84, + 0x2df6c8, + 0x2e0cc6, + 0x2e2e04, + 0x2e3508, + 0x2e3807, + 0x71201702, + 0x2e6804, + 0x30a484, + 0x2c1447, + 0x71605184, + 0x226b42, + 0x71a01782, + 0x201783, + 0x201784, + 0x29f203, + 0x29f205, + 0x71e1df42, + 0x2fae85, + 0x287542, + 0x303a85, + 0x3b9145, + 0x72210b82, + 0x216404, + 0x726026c2, + 0x36b586, + 0x2ba0c6, + 0x264288, + 0x2c20c8, + 0x3cc044, + 0x3b2ac5, + 0x383b49, + 0x2fe744, + 0x2e7144, + 0x203983, + 0x248403, + 0x72a48405, + 0x234545, + 0x2865c4, + 0x35550d, + 0x354282, + 0x357a43, + 0x35ef43, + 0x72e05c42, + 0x73202302, + 0x395505, + 0x368687, + 0x21dc44, + 0x36dcc9, + 0x2cb089, + 0x279e83, + 0x279e88, + 0x2f3f49, + 0x2305c7, + 0x207ac5, + 0x383886, + 0x3a2c06, + 0x3a6305, + 0x34cb45, + 0x73601a82, + 0x27cbc5, + 0x2b8908, + 0x2c4346, + 0x73b2ec87, + 0x2a1084, + 0x309247, + 0x2ffe86, + 0x73e01082, + 0x361a86, + 0x30310a, + 0x303985, + 0x742e4542, + 0x7468f3c2, + 0x340fc6, + 0x318e08, + 0x74a8f3c7, + 0x74e28cc2, + 0x28a1c3, + 0x3a8546, + 0x224304, + 0x278b06, + 0x313646, + 0x376d4a, + 0x203bc5, + 0x331cc6, + 0x32ee03, + 0x32ee04, + 0x20b102, + 0x329103, + 0x7520e982, + 0x2ed803, + 0x213904, + 0x2c28c4, + 0x75718f4a, + 0x222f03, + 0x222f0a, + 0x239447, + 0x307186, + 0x23bd84, + 0x20d642, + 0x2a5b82, + 0x75a007c2, + 0x263943, + 0x257107, 0x2007c7, - 0x2895c4, - 0x21e8c7, - 0x2f2346, - 0x219187, - 0x225904, - 0x37cb05, - 0x218345, - 0x74619f82, - 0x3dc5c6, - 0x21d843, - 0x220bc2, - 0x220bc6, - 0x74a19b42, - 0x74e1be02, - 0x3c3905, - 0x75243982, - 0x75602b42, - 0x348ac5, - 0x2d6385, - 0x2a7ec5, - 0x75a04e83, - 0x36f205, - 0x2e8207, - 0x2c4c05, - 0x332105, - 0x32a284, - 0x2e6006, - 0x34b504, - 0x75e008c2, - 0x76ae94c5, - 0x382b07, - 0x360088, - 0x251646, - 0x25164d, - 0x252b09, - 0x252b12, - 0x380385, - 0x38bd03, - 0x76e062c2, - 0x2f3e44, - 0x219ec3, - 0x30d305, - 0x30e4c5, - 0x772195c2, - 0x25ce03, - 0x7765b8c2, - 0x77ee3402, - 0x78200082, - 0x2c8b45, - 0x3cd503, - 0x24af88, - 0x78619082, - 0x78a0d2c2, - 0x348d06, - 0x31f38a, - 0x20ef03, - 0x25ac43, - 0x2eeac3, - 0x79e07d82, - 0x8821a6c2, - 0x88a0a742, - 0x206842, - 0x3d00c9, - 0x2c7504, - 0x2ac108, - 0x88efc182, - 0x89214f82, - 0x2af4c5, - 0x2345c8, - 0x311308, - 0x2ef30c, - 0x239d03, - 0x8961f202, - 0x89a0a342, - 0x349646, - 0x313d05, - 0x2dcf43, - 0x2574c6, - 0x313e46, - 0x29b2c3, - 0x3c2003, - 0x3152c6, - 0x316ac4, - 0x2819c6, - 0x21c28a, - 0x24e184, - 0x317184, - 0x31820a, - 0x89e1ff02, - 0x252205, - 0x319d4a, - 0x319c85, - 0x31b1c4, - 0x31b2c6, - 0x31b444, - 0x213fc6, - 0x8a22bc42, - 0x2fdd06, - 0x328805, - 0x32e0c7, - 0x3ad646, - 0x25d084, - 0x2dd1c7, - 0x34b206, - 0x20bf45, - 0x20bf47, - 0x3bbc47, - 0x3bbc4e, - 0x26bb86, - 0x221d45, - 0x207b87, - 0x306003, - 0x330387, - 0x209185, - 0x20af84, - 0x221ac2, - 0x229c47, - 0x30e204, - 0x231784, - 0x23f04b, - 0x21c8c3, - 0x288087, - 0x21c8c4, - 0x288287, - 0x294a03, - 0x34ca4d, - 0x3a4bc8, - 0x8a62a984, - 0x23d705, - 0x31bfc5, - 0x31c403, - 0x8aa23f82, - 0x31dd83, - 0x31e583, - 0x3dc744, - 0x27e0c5, - 0x21d8c7, - 0x32e2c6, - 0x38bac3, - 0x228d8b, - 0x27444b, - 0x2b200b, - 0x2d440b, - 0x2e9d4a, - 0x33484b, - 0x36d94b, - 0x392c8c, - 0x3d990b, - 0x3db991, - 0x32068a, - 0x320b8b, - 0x320e4c, - 0x32114b, - 0x3218ca, - 0x321f0a, - 0x322e0e, - 0x32380b, - 0x323aca, - 0x325011, - 0x32544a, - 0x32594b, - 0x325e8e, - 0x3267cc, - 0x326e0b, - 0x3270ce, - 0x32744c, - 0x329d4a, - 0x32b58c, - 0x8af2b88a, - 0x32c488, - 0x32d049, - 0x33390a, - 0x333b8a, - 0x333e0b, - 0x33854e, - 0x338f51, - 0x341f49, - 0x34218a, - 0x342f8b, - 0x3444ca, - 0x345596, - 0x34690b, - 0x34768a, - 0x34854a, - 0x349d8b, - 0x34a609, - 0x34d3c9, - 0x34da0d, - 0x34e44b, - 0x34f34b, - 0x34fd0b, - 0x350589, - 0x350bce, - 0x35130a, - 0x35224a, - 0x3527ca, - 0x352f8b, - 0x3537cb, - 0x35448d, - 0x356b8d, - 0x357c10, - 0x3580cb, - 0x358acc, + 0x288e44, + 0x21f187, + 0x2ec646, + 0x210347, + 0x21c204, + 0x3ae645, + 0x20fa45, + 0x75e14642, + 0x387fc6, + 0x214643, + 0x21d882, + 0x21d886, + 0x76207202, + 0x7661a602, + 0x3c5285, + 0x76a44d02, + 0x76e01942, + 0x323485, + 0x2d4505, + 0x2a8485, + 0x77609903, + 0x372d45, + 0x2e3087, + 0x2f7405, + 0x203d85, + 0x322804, + 0x23d386, + 0x2fdc84, + 0x77a008c2, + 0x786e7645, + 0x3858c7, + 0x3543c8, + 0x250e06, + 0x38f0cd, + 0x250e09, + 0x250e12, + 0x349b05, + 0x34c683, + 0x78a05842, + 0x313244, + 0x214583, + 0x382b45, + 0x304945, + 0x78e10782, + 0x25b643, + 0x7921ddc2, + 0x79a736c2, + 0x79e00082, + 0x2d1885, + 0x21fb83, + 0x248d88, + 0x7a210242, + 0x7a613602, + 0x37ae46, + 0x31650a, + 0x206303, + 0x258dc3, + 0x2f1cc3, + 0x7ba04cc2, + 0x89e187c2, + 0x8a608c02, + 0x2038c2, + 0x3ccc09, + 0x2c6984, + 0x20a988, + 0x8aaf6602, + 0x8b205d42, + 0x2b04c5, + 0x235d48, + 0x2f9f08, + 0x2e95cc, + 0x239383, + 0x8b61fb02, + 0x8ba00f02, + 0x367b06, + 0x308005, + 0x2db783, + 0x250346, + 0x308146, + 0x291103, + 0x30a3c3, + 0x30a7c6, + 0x30c044, + 0x26c6c6, + 0x3b45ca, + 0x2443c4, + 0x30c704, + 0x30d84a, + 0x8bee5d02, + 0x24ff85, + 0x30f38a, + 0x30f2c5, + 0x3115c4, + 0x3116c6, + 0x311844, + 0x215186, + 0x8c22c902, + 0x2f8346, + 0x32b1c5, + 0x329847, + 0x3b4446, + 0x256d44, + 0x2dba07, + 0x337b86, + 0x20b085, + 0x20b087, + 0x3bc047, + 0x3bc04e, + 0x38cb86, + 0x221045, + 0x2050c7, + 0x207603, + 0x349047, + 0x208f45, + 0x217ec4, + 0x222782, + 0x22bdc7, + 0x3cb584, + 0x2ff104, + 0x24758b, + 0x21c903, + 0x291847, + 0x21c904, + 0x2ba647, + 0x22ac83, + 0x34e84d, + 0x3a4e08, + 0x8c6261c4, + 0x23ba85, + 0x312bc5, + 0x313003, + 0x8ca22082, + 0x315303, + 0x315703, + 0x388144, + 0x27e645, + 0x2146c7, + 0x32ee86, + 0x390b03, + 0x22550b, + 0x27e74b, + 0x2b2ccb, + 0x2d340b, + 0x2e458a, + 0x3709cb, + 0x396c8b, + 0x3d92cc, + 0x3da7cb, + 0x317351, + 0x31778a, + 0x317c8b, + 0x317f4c, + 0x31824b, + 0x3188ca, + 0x3191ca, + 0x31a0ce, + 0x31a98b, + 0x31ac4a, + 0x31c751, + 0x31cb8a, + 0x31d08b, + 0x31d5ce, + 0x31df0c, + 0x31e98b, + 0x31ec4e, + 0x31efcc, + 0x3222ca, + 0x32384c, + 0x8cf23b4a, + 0x324748, + 0x325309, + 0x333d0a, + 0x333f8a, + 0x33420b, + 0x3369ce, + 0x337651, + 0x342f49, + 0x34318a, + 0x343f8b, + 0x345aca, + 0x346f16, + 0x34828b, + 0x3498ca, + 0x349cca, + 0x34accb, + 0x34c109, + 0x34f1c9, + 0x34fc8d, + 0x35030b, + 0x35120b, + 0x351bcb, + 0x352709, + 0x352d4e, + 0x353dca, + 0x354c8a, + 0x3552ca, + 0x355b8b, + 0x3563cb, + 0x35724d, + 0x358bcd, + 0x359210, 0x3596cb, - 0x35b98b, - 0x35dd4e, - 0x35e44b, - 0x35e44d, - 0x364a4b, - 0x3654cf, - 0x36588b, - 0x3660ca, - 0x3673c9, - 0x367bc9, - 0x8b368c4b, - 0x368f0e, - 0x36b88b, - 0x36c50f, - 0x36e54b, - 0x36e80b, - 0x36eacb, - 0x36f34a, - 0x374e89, - 0x37978f, - 0x37df0c, - 0x37fb4c, - 0x38004e, - 0x38054f, - 0x38090e, - 0x381150, - 0x38154f, - 0x38210e, - 0x382ccc, - 0x382fd2, - 0x383751, - 0x383f4e, - 0x38438e, - 0x3853cb, - 0x3853ce, - 0x38574f, - 0x385b0e, - 0x385e93, - 0x386351, - 0x38678c, - 0x386a8e, - 0x386f0c, - 0x387453, - 0x387c50, - 0x3887cc, - 0x388acc, - 0x388f8b, - 0x38984e, - 0x389d4b, - 0x38a54b, - 0x38d28c, - 0x391f8a, - 0x39248c, - 0x39278c, - 0x392a89, - 0x39470b, - 0x3949c8, - 0x395189, - 0x39518f, - 0x39690b, - 0x8b79724a, - 0x39a2cc, - 0x39b48b, - 0x39b749, - 0x39bb88, - 0x39c14b, - 0x39c98b, - 0x39d50a, - 0x39d78b, - 0x3a150c, - 0x3a26c8, - 0x3a4f0b, - 0x3a814b, - 0x3ab00e, - 0x3ac50b, - 0x3ae20b, - 0x3bb7cb, - 0x3bba89, - 0x3bbfcd, - 0x3cd98a, - 0x3d0b57, - 0x3d1358, - 0x3d3f49, - 0x3d508b, - 0x3d6054, - 0x3d654b, - 0x3d6aca, - 0x3d6f8a, - 0x3d720b, - 0x3d79d0, - 0x3d7dd1, - 0x3d838a, - 0x3d8f0d, - 0x3d960d, - 0x3dbdcb, - 0x3dc6c3, - 0x8bb77983, - 0x2d4886, - 0x278445, - 0x30db87, - 0x334706, - 0x1605042, - 0x2dd4c9, - 0x32c104, - 0x2e7748, - 0x21d4c3, - 0x2f3d87, - 0x22f282, - 0x2af9c3, - 0x8be0a842, - 0x2cd186, - 0x2ce1c4, - 0x35cbc4, - 0x332803, - 0x8c6c8e42, - 0x8caab204, - 0x275d07, - 0x8ce37b02, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0xecf48, - 0x2013c3, + 0x35a24c, + 0x35b74b, + 0x35d48b, + 0x35eb4e, + 0x35f6cb, + 0x35f6cd, + 0x364c8b, + 0x36570f, + 0x365acb, + 0x36630a, + 0x368b49, + 0x369209, + 0x8d36a28b, + 0x36a54e, + 0x36e90b, + 0x36f58f, + 0x37208b, + 0x37234b, + 0x37260b, + 0x372e8a, + 0x378bc9, + 0x37d1cf, + 0x381d4c, + 0x38230c, + 0x38280e, + 0x382e0f, + 0x3831ce, + 0x383f10, + 0x38430f, + 0x384ece, + 0x385a8c, + 0x385d91, + 0x3861d2, + 0x388711, + 0x388f0e, + 0x38934b, + 0x38934e, + 0x3896cf, + 0x389a8e, + 0x389e13, + 0x38a2d1, + 0x38a70c, + 0x38aa0e, + 0x38ae8c, + 0x38b3d3, + 0x38bbd0, + 0x38d8cc, + 0x38dbcc, + 0x38e08b, + 0x38e64e, + 0x38eb4b, + 0x38f40b, + 0x3914cc, + 0x395f8a, + 0x39648c, + 0x39678c, + 0x396a89, + 0x3986cb, + 0x398988, + 0x399149, + 0x39914f, + 0x39a90b, + 0x8d79b24a, + 0x39d78c, + 0x39e94b, + 0x39ec09, + 0x39f388, + 0x39f94b, + 0x3a018b, + 0x3a0d0a, + 0x3a0f8b, + 0x3a154c, + 0x3a2688, + 0x3a514b, + 0x3a80cb, + 0x3ab58e, + 0x3acccb, + 0x3af7cb, + 0x3bbbcb, + 0x3bbe89, + 0x3bc3cd, + 0x3ca50a, + 0x3cdb97, + 0x3cfd58, + 0x3d34c9, + 0x3d460b, + 0x3d50d4, + 0x3d55cb, + 0x3d5b4a, + 0x3d600a, + 0x3d628b, + 0x3d7250, + 0x3d7651, + 0x3d7c0a, + 0x3d88cd, + 0x3d8fcd, + 0x3dbd8b, + 0x3880c3, + 0x8db86943, + 0x2a9ec6, + 0x279c45, + 0x3911c7, + 0x334b06, + 0x1603a02, + 0x3d2049, + 0x3243c4, + 0x2e2608, + 0x21d503, + 0x313187, + 0x231442, + 0x2b1083, + 0x8de08c42, + 0x2cbb06, + 0x2ccf04, + 0x346604, + 0x36d203, + 0x8e6c8842, + 0x8ea1e244, + 0x276d87, + 0x8ee2ba82, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x1acac8, + 0x204783, 0x2000c2, - 0xa14c8, - 0x202782, - 0x220583, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x202003, - 0x33e716, - 0x362c13, - 0x21e749, - 0x2447c8, - 0x3cb289, - 0x319ec6, - 0x34e710, - 0x2425d3, - 0x347c88, - 0x279447, - 0x27ad47, - 0x2a3b0a, - 0x32efc9, - 0x3a2849, - 0x24184b, - 0x3cbf86, - 0x289b0a, - 0x221346, - 0x32bd03, - 0x2dc8c5, - 0x3d1dc8, - 0x234a8d, - 0x3b8b8c, - 0x310ac7, - 0x32428d, - 0x225344, - 0x23094a, - 0x231e4a, - 0x23230a, - 0x2428c7, - 0x23bc07, - 0x23ef84, - 0x26ec06, - 0x32f404, - 0x2da308, - 0x2e1509, - 0x2d0f46, - 0x2d0f48, - 0x242d8d, - 0x2cc809, - 0x315848, - 0x239587, - 0x2399ca, - 0x253fc6, - 0x25f947, - 0x2cbe44, - 0x28f147, - 0x22964a, - 0x23d00e, - 0x278745, - 0x28f04b, - 0x229149, - 0x252d49, - 0x2add07, - 0x3bf4ca, - 0x2c1947, - 0x2f9209, - 0x3b9108, - 0x28eb4b, - 0x2e43c5, - 0x22bd4a, - 0x28fd09, - 0x37270a, - 0x2ceecb, - 0x3c514b, - 0x2415d5, - 0x2eb105, - 0x239605, - 0x2f864a, - 0x25b58a, - 0x311a07, - 0x234703, - 0x2b9388, - 0x2db00a, - 0x224086, - 0x266809, - 0x283048, - 0x2dcb04, - 0x387209, - 0x2c2988, - 0x2beec7, - 0x2e94c6, - 0x382b07, - 0x3503c7, - 0x23e385, - 0x2e730c, - 0x23d705, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x202782, - 0x22d7c3, - 0x206b43, - 0x2013c3, - 0x23cf83, - 0x22d7c3, - 0x206b43, - 0x13c3, - 0x2a8b03, - 0x23cf83, - 0x1cdd43, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0xa14c8, - 0x202782, - 0x22d7c3, - 0x22d7c7, - 0x206b43, - 0x23cf83, - 0x202782, - 0x203dc2, - 0x31b402, - 0x206102, - 0x200d42, - 0x2ea5c2, - 0x91d46, - 0x54389, - 0x481b683, - 0x89947, - 0x7b83, - 0x11b645, + 0xa7c88, + 0x203102, + 0x224943, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x202443, + 0x33fed6, + 0x362e53, + 0x21f009, + 0x245b48, + 0x3bd489, + 0x30f506, + 0x3505d0, + 0x243713, + 0x2e6148, + 0x27abc7, + 0x27c4c7, + 0x2a3d0a, + 0x3426c9, + 0x3a2809, + 0x25078b, + 0x326546, + 0x28938a, + 0x220c06, + 0x323fc3, + 0x2dab45, + 0x3b9a08, + 0x23620d, + 0x2031cc, + 0x2fd587, + 0x31a40d, + 0x222584, + 0x23224a, + 0x23348a, + 0x23394a, + 0x23cc87, + 0x23e247, + 0x240a84, + 0x2877c6, + 0x32b384, + 0x2d8588, + 0x3a9409, + 0x2ceb86, + 0x2ceb88, + 0x243ecd, + 0x2cb2c9, + 0x30ad48, + 0x22a747, + 0x23904a, + 0x251ec6, + 0x25dec7, + 0x2d0e84, + 0x28f047, + 0x22494a, + 0x23f84e, + 0x26fbc5, + 0x28ef4b, + 0x222b09, + 0x207349, + 0x371187, + 0x3dc44a, + 0x2c1387, + 0x2f38c9, + 0x209f08, + 0x32c60b, + 0x2e1985, + 0x22ca0a, + 0x225289, + 0x36beca, + 0x2cdccb, + 0x3c6c8b, + 0x250515, + 0x2e59c5, + 0x22a7c5, + 0x2f2d0a, + 0x25970a, + 0x313b87, + 0x22a803, + 0x2b8188, + 0x2d928a, + 0x222186, + 0x25b6c9, + 0x28b748, + 0x2e2e04, + 0x38b189, + 0x2c20c8, + 0x2bc707, + 0x2e7646, + 0x3858c7, + 0x2c2dc7, + 0x23fe85, + 0x26fa0c, + 0x23ba85, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x203102, + 0x22f743, + 0x20ce83, + 0x204783, + 0x23f7c3, + 0x22f743, + 0x20ce83, + 0x4783, + 0x26d843, + 0x23f7c3, + 0x1ca8c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0xa7c88, + 0x203102, + 0x22f743, + 0x22f747, + 0x20ce83, + 0x23f7c3, + 0x203102, + 0x201d02, + 0x2e63c2, + 0x2051c2, + 0x2090c2, + 0x2e4e02, + 0x92246, + 0x52449, + 0x481bbc3, + 0x891c7, + 0x50c3, + 0x112585, 0xc1, - 0x522d7c3, - 0x233743, - 0x228843, - 0x220583, - 0x219e43, - 0x205e03, - 0x2dc7c6, - 0x206b43, - 0x23cf83, - 0x204283, - 0xa14c8, - 0x200984, - 0x30ad47, - 0x332843, - 0x375e04, - 0x21a5c3, - 0x212003, - 0x220583, - 0x14c47, - 0x109744, - 0x3283, - 0x131905, + 0x522f743, + 0x234e83, + 0x20d343, + 0x224943, + 0x214503, + 0x211d83, + 0x2daa46, + 0x20ce83, + 0x23f7c3, + 0x2021c3, + 0xa7c88, + 0x3314c4, + 0x332e47, + 0x36d243, + 0x2e8204, + 0x2186c3, + 0x287e03, + 0x224943, + 0xe747, + 0x9c4, + 0x11c3, + 0x1273c5, 0x2000c2, - 0x4ce83, - 0x6602782, - 0x688bc49, - 0x8c5cd, - 0x8c90d, - 0x31b402, - 0x22884, - 0x131949, + 0x4af03, + 0x6603102, + 0x688b549, + 0x8bbcd, + 0x8cb4d, + 0x2e63c2, + 0x21b84, + 0x127409, 0x2003c2, - 0x6e22788, - 0xf7dc4, - 0xa14c8, - 0x1419a42, + 0x6e21a88, + 0xf2484, + 0xa7c88, + 0x1416702, 0x14005c2, - 0x1419a42, - 0x1517386, - 0x22f303, - 0x26f283, - 0x762d7c3, - 0x230944, - 0x7a33743, - 0x7e20583, - 0x2067c2, - 0x222884, - 0x206b43, - 0x305f83, - 0x201642, - 0x23cf83, - 0x218142, - 0x2ffb03, - 0x209482, - 0x207043, - 0x283103, - 0x205302, - 0xa14c8, - 0x22f303, - 0x305f83, - 0x201642, - 0x2ffb03, - 0x209482, - 0x207043, - 0x283103, - 0x205302, - 0x2ffb03, - 0x209482, - 0x207043, - 0x283103, - 0x205302, - 0x22d7c3, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x219e43, - 0x205e03, - 0x205184, - 0x206b43, - 0x23cf83, - 0x202102, - 0x213c43, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x206b43, - 0x23cf83, - 0x3da885, - 0x2195c2, + 0x1416702, + 0x150c906, + 0x2314c3, + 0x271803, + 0x762f743, + 0x232244, + 0x7a34e83, + 0x8624943, + 0x203842, + 0x221b84, + 0x20ce83, + 0x301e03, + 0x201e02, + 0x23f7c3, + 0x218002, + 0x2faa83, + 0x205fc2, + 0x2a3903, + 0x28b803, + 0x202d02, + 0xa7c88, + 0x2314c3, + 0x20bb08, + 0x2802c2, + 0x7f01e03, + 0x201e02, + 0x2faa83, + 0x205fc2, + 0x82a3903, + 0x28b803, + 0x202d02, + 0x254c07, + 0x234e89, + 0x2faa83, + 0x205fc2, + 0x2a3903, + 0x28b803, + 0x202d02, + 0x22f743, + 0x24af03, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x214503, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x20da42, + 0x214e03, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x24af03, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x207ac5, + 0x210782, 0x2000c2, - 0xa14c8, - 0x144b148, - 0x103e4a, - 0x220583, - 0x207881, + 0xa7c88, + 0x14441c8, + 0x13258a, + 0x224943, + 0x2042c1, 0x2009c1, - 0x203281, - 0x202ec1, - 0x200a41, - 0x20c101, 0x200a01, - 0x228441, - 0x207901, + 0x201301, + 0x201281, + 0x205ac1, + 0x202881, + 0x220541, + 0x204341, 0x200001, 0x2000c1, 0x200201, - 0x12dac5, - 0xa14c8, + 0x129245, + 0xa7c88, 0x200101, - 0x200f01, + 0x2015c1, 0x200501, - 0x202401, + 0x2014c1, 0x200041, 0x200801, 0x200181, - 0x202d41, + 0x200e01, 0x200701, 0x2004c1, - 0x200c01, + 0x200bc1, 0x200581, 0x2003c1, - 0x201001, - 0x215f41, + 0x200a81, + 0x216b41, 0x200401, 0x200741, 0x2007c1, 0x200081, - 0x206841, - 0x201ec1, - 0x203301, - 0x201081, - 0x20a781, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x202782, - 0x22d7c3, - 0x233743, + 0x200f01, + 0x202d01, + 0x201241, + 0x2018c1, + 0x2086c1, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x203102, + 0x22f743, + 0x234e83, 0x2003c2, - 0x23cf83, - 0x1b043, - 0x14c47, - 0x5f07, - 0x29f46, - 0x3530a, - 0x8b088, - 0x58748, - 0x58c07, - 0x108a46, - 0xe3485, - 0x45585, - 0x125d43, - 0x5bac6, - 0xec046, - 0x241844, - 0x37e847, - 0xa14c8, - 0x2dd2c4, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x2782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x32ba88, - 0x201844, - 0x233684, - 0x22afc4, - 0x349547, - 0x2d9947, - 0x22d7c3, - 0x23620b, - 0x31fb4a, - 0x3cc247, - 0x306588, - 0x328108, - 0x233743, - 0x336447, - 0x228843, - 0x20d348, - 0x210b49, - 0x222884, - 0x219e43, - 0x2fee88, - 0x205e03, - 0x2d618a, - 0x2dc7c6, - 0x3aa407, - 0x206b43, - 0x394486, - 0x26f108, - 0x23cf83, - 0x25ae06, - 0x2ef84d, - 0x2f1f08, - 0x2f898b, - 0x2bff86, - 0x3416c7, - 0x214dc5, - 0x2d5dca, - 0x228105, - 0x24308a, - 0x2195c2, - 0x207b83, - 0x231784, + 0x23f7c3, + 0x1b583, + 0xe747, + 0x11e87, + 0x25786, + 0x36a8a, + 0x8ac88, + 0x56548, + 0x57007, + 0x1757c6, + 0xe0a45, + 0x1339c5, + 0x11d483, + 0x1c6b46, + 0xfd986, + 0x250784, + 0x3bd8c7, + 0xa7c88, + 0x2dbb04, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x3102, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x323d48, + 0x330684, + 0x234dc4, + 0x226804, + 0x367a07, + 0x2d7607, + 0x22f743, + 0x2375cb, + 0x316cca, + 0x326807, + 0x302288, + 0x32aac8, + 0x234e83, + 0x32d787, + 0x20d343, + 0x2083c8, + 0x20b5c9, + 0x221b84, + 0x214503, + 0x23b2c8, + 0x211d83, + 0x2d430a, + 0x2daa46, + 0x3aa987, + 0x20ce83, + 0x398446, + 0x271688, + 0x23f7c3, + 0x258f86, + 0x2e9b0d, + 0x2ec208, + 0x2f304b, + 0x3c6506, + 0x368587, + 0x212885, + 0x22914a, + 0x220205, + 0x23444a, + 0x210782, + 0x2050c3, + 0x2ff104, 0x200006, - 0x3b0ec3, - 0x2a13c3, - 0x24de03, - 0x201843, - 0x372dc3, - 0x2017c2, - 0x300745, - 0x2a9049, - 0x23ea03, - 0x20a683, - 0x202b03, + 0x3b2f83, + 0x2a7b83, + 0x24e8c3, + 0x2c5d43, + 0x2b5903, + 0x203082, + 0x2fcf85, + 0x2a9749, + 0x240503, + 0x21c183, + 0x224cc3, 0x200201, - 0x2e8d87, - 0x2c8885, - 0x398a83, - 0x3c4703, - 0x22afc4, - 0x32f383, - 0x21c1c8, - 0x367603, - 0x31454d, - 0x26bc48, - 0x20b546, - 0x332d03, - 0x38d543, - 0x3ac783, - 0xbe2d7c3, - 0x232f88, - 0x236204, - 0x23fec3, + 0x2e6f07, + 0x2d15c5, + 0x3a8343, + 0x3c6083, + 0x226804, + 0x327003, + 0x20f588, + 0x368d83, + 0x3097cd, + 0x38cc48, + 0x20bcc6, + 0x329143, + 0x391783, + 0x3acf43, + 0xc62f743, + 0x2346c8, + 0x2375c4, + 0x241183, 0x200106, - 0x243608, - 0x202943, - 0x2d5e03, - 0x22d943, - 0x233743, - 0x210483, - 0x2416c3, - 0x2a6003, - 0x332c83, - 0x209c83, - 0x202403, - 0x38a7c5, - 0x254344, - 0x254cc7, - 0x2b06c2, - 0x2584c3, - 0x25af86, - 0x25c303, - 0x25c9c3, - 0x278643, - 0x309303, - 0x202383, - 0x2973c7, - 0xc220583, - 0x24b543, - 0x3d54c3, - 0x209a03, - 0x219c83, - 0x2fe043, - 0x3b4d05, - 0x371983, - 0x2f9f89, - 0x2035c3, - 0x30e7c3, - 0xc636803, - 0x3d8883, - 0x21b888, - 0x2a8f86, - 0x3090c6, - 0x29d786, - 0x388307, - 0x226b83, - 0x22a243, - 0x205e03, - 0x28b186, - 0x2104c2, - 0x2a6343, - 0x33d1c5, - 0x206b43, - 0x31aa87, - 0x16013c3, - 0x26f103, - 0x234203, - 0x218003, - 0x2050c3, - 0x23cf83, - 0x20e486, - 0x3315c6, - 0x37a043, - 0x2f0b83, - 0x213c43, - 0x225983, - 0x3c2083, - 0x2fe543, - 0x2ffec3, - 0x216345, - 0x25b583, - 0x378b46, - 0x32f608, - 0x217d43, - 0x274f89, - 0x363108, - 0x2170c8, - 0x224385, - 0x37cc0a, - 0x39da8a, - 0x22e30b, - 0x22f448, - 0x2ee443, - 0x38bc03, - 0x2f88c3, - 0x30f848, - 0x35e143, - 0x32e244, - 0x202742, - 0x260403, + 0x244988, + 0x27d8c3, + 0x229183, + 0x22f8c3, + 0x234e83, + 0x2199c3, + 0x250603, + 0x286583, + 0x3290c3, + 0x28e243, + 0x2227c3, + 0x38f685, + 0x252404, + 0x252d87, + 0x2b1d82, + 0x2562c3, + 0x259106, + 0x25ab43, + 0x25b203, + 0x279e43, + 0x376083, + 0x3311c3, + 0x298c07, + 0xca24943, + 0x249203, + 0x3d66c3, + 0x2083c3, + 0x214343, + 0x2f8683, + 0x3b9485, + 0x374ec3, + 0x200e09, + 0x201503, + 0x304c43, + 0xce37bc3, + 0x2bd483, + 0x21acc8, + 0x2a9686, + 0x375e46, + 0x29e046, + 0x38c287, + 0x222e43, + 0x225a83, + 0x211d83, + 0x28ad86, + 0x203282, + 0x2a2c03, + 0x33e985, + 0x20ce83, + 0x3104c7, + 0x1604783, + 0x271683, + 0x207c83, + 0x212ec3, + 0x209b43, + 0x23f7c3, + 0x20c586, + 0x326d46, + 0x37da83, + 0x2eb003, + 0x214e03, + 0x21c283, + 0x30a443, + 0x2f8c83, + 0x2fae43, + 0x216f45, + 0x259703, + 0x387b06, + 0x32b588, + 0x212c03, + 0x3be389, + 0x363348, + 0x215a48, + 0x21fc05, + 0x2ff34a, + 0x35fcca, + 0x3a128b, + 0x22ecc8, + 0x2ed043, + 0x390c43, + 0x2f2f83, + 0x305a48, + 0x3788c3, + 0x32ee04, + 0x20b102, + 0x25e943, 0x2007c3, - 0x229343, - 0x2572c3, - 0x204283, - 0x2195c2, - 0x227d43, - 0x239d03, - 0x317503, - 0x318c44, - 0x231784, - 0x228c83, - 0xa14c8, + 0x222d03, + 0x254f83, + 0x2021c3, + 0x210782, + 0x22ab43, + 0x239383, + 0x30ca83, + 0x30e284, + 0x2ff104, + 0x3c6903, + 0xa7c88, 0x2000c2, - 0x200b02, - 0x2017c2, - 0x2020c2, + 0x200ac2, + 0x203082, + 0x202602, 0x200202, - 0x201942, - 0x258542, - 0x201242, + 0x201ec2, + 0x255002, + 0x201bc2, 0x200382, - 0x201442, - 0x25e5c2, - 0x200e82, - 0x26cec2, - 0x201002, - 0x2ea5c2, - 0x202142, - 0x203d42, - 0x213c42, - 0x2b0942, - 0x206382, + 0x200c42, + 0x32a2c2, + 0x204fc2, + 0x26ff42, + 0x200a82, + 0x2e4e02, + 0x204ac2, + 0x201c82, + 0x214e02, + 0x2b2002, + 0x2046c2, 0x200682, - 0x214582, - 0x202542, - 0x202002, - 0x201bc2, - 0x236082, - 0x202b42, + 0x215742, + 0x203e42, + 0x202442, + 0x205c82, + 0x234542, + 0x201942, 0xc2, - 0xb02, - 0x17c2, - 0x20c2, + 0xac2, + 0x3082, + 0x2602, 0x202, - 0x1942, - 0x58542, - 0x1242, + 0x1ec2, + 0x55002, + 0x1bc2, 0x382, - 0x1442, - 0x5e5c2, - 0xe82, - 0x6cec2, - 0x1002, - 0xea5c2, - 0x2142, - 0x3d42, - 0x13c42, - 0xb0942, - 0x6382, + 0xc42, + 0x12a2c2, + 0x4fc2, + 0x6ff42, + 0xa82, + 0xe4e02, + 0x4ac2, + 0x1c82, + 0x14e02, + 0xb2002, + 0x46c2, 0x682, - 0x14582, - 0x2542, - 0x2002, - 0x1bc2, - 0x36082, - 0x2b42, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x1ec2, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x2782, - 0x202782, - 0x23cf83, - 0xde2d7c3, - 0x220583, - 0x205e03, - 0x6df83, - 0x22ebc2, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x6df83, - 0x23cf83, - 0xa842, + 0x15742, + 0x3e42, + 0x2442, + 0x5c82, + 0x34542, + 0x1942, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x50c2, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x3102, + 0x203102, + 0x23f7c3, + 0xe62f743, + 0x224943, + 0x211d83, + 0x71003, + 0x228002, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x8c42, 0x2001c2, - 0x1445d45, - 0x12dac5, - 0x20b342, - 0xa14c8, - 0x2782, - 0x234f42, - 0x202282, - 0x201c42, - 0x205d42, - 0x24fd42, - 0x45585, - 0x201fc2, - 0x201642, - 0x21a682, - 0x202b82, - 0x202142, - 0x3a1602, - 0x203842, - 0x295a82, - 0xef0b404, + 0x143c845, + 0x129245, + 0x20bac2, + 0xa7c88, + 0x3102, + 0x2366c2, + 0x204482, + 0x20f782, + 0x211cc2, + 0x24dc02, + 0x1339c5, + 0x2016c2, + 0x201e02, + 0x218782, + 0x201dc2, + 0x204ac2, + 0x3a1642, + 0x201782, + 0x296d02, + 0xf731fc4, 0x142, - 0x14c47, - 0x1a108d, - 0xe3509, - 0xaea4b, - 0xe80c8, - 0x71f49, - 0x10f346, - 0x220583, - 0xa14c8, - 0x109744, - 0x3283, - 0x131905, - 0xa14c8, - 0xdffc7, - 0x59706, - 0x131949, - 0x14a0e, - 0x137987, + 0xe747, + 0x14f80d, + 0xe0ac9, + 0xd700b, + 0xe2f48, + 0x668c9, + 0x105546, + 0x224943, + 0xa7c88, + 0x9c4, + 0x11c3, + 0x1273c5, + 0xa7c88, + 0xde387, + 0x57b06, + 0x127409, + 0xe50e, + 0x14bf47, 0x2000c2, - 0x241844, - 0x202782, - 0x22d7c3, - 0x203dc2, - 0x233743, - 0x19d03, + 0x250784, + 0x203102, + 0x22f743, + 0x201d02, + 0x234e83, + 0x143c3, 0x200382, - 0x2dd2c4, - 0x219e43, - 0x24ab82, - 0x206b43, + 0x2dbb04, + 0x214503, + 0x249602, + 0x20ce83, 0x2003c2, - 0x23cf83, - 0x239606, - 0x3343cf, + 0x23f7c3, + 0x22a7c6, + 0x3347cf, 0x602, - 0x7094c3, - 0xa14c8, - 0x202782, - 0x228843, - 0x220583, - 0x205e03, - 0x13c3, - 0x14a08, - 0x14d5b8b, - 0x153f50a, - 0x148e24a, - 0x14726c7, - 0xa3bcb, - 0x15e1c5, - 0x11a7c9, - 0x12dac5, - 0x14c47, - 0xf5744, - 0x202782, - 0x22d7c3, - 0x220583, - 0x206b43, + 0x776243, + 0xa7c88, + 0x203102, + 0x20d343, + 0x224943, + 0x211d83, + 0x4783, + 0xe508, + 0x1428f0b, + 0x1540cca, + 0x152bd0a, + 0x1427bc7, + 0xa3dcb, + 0x178945, + 0x110209, + 0x129245, + 0xe747, + 0xef6c4, + 0x203102, + 0x22f743, + 0x224943, + 0x20ce83, 0x2000c2, - 0x201cc2, - 0x33b5c2, - 0x1222d7c3, - 0x23c842, - 0x233743, - 0x203582, - 0x20a1c2, - 0x220583, - 0x2068c2, - 0x272142, - 0x2ab1c2, - 0x202082, - 0x291a82, + 0x200c82, + 0x33d3c2, + 0x12a2f743, + 0x23e8c2, + 0x234e83, + 0x2014c2, + 0x2268c2, + 0x224943, + 0x203942, + 0x28bec2, + 0x21e202, + 0x200cc2, + 0x291f82, 0x200802, - 0x2012c2, - 0x207102, - 0x27a482, - 0x201d02, - 0x18c3cc, - 0x2b1402, - 0x2efdc2, - 0x21d882, - 0x241442, - 0x205e03, - 0x200c02, - 0x206b43, - 0x209b42, - 0x2d43c2, - 0x23cf83, - 0x23ea82, - 0x202002, - 0x200ec2, - 0x201282, - 0x215042, - 0x2e9d02, - 0x219f82, - 0x25b8c2, - 0x220d02, - 0x323aca, - 0x3660ca, - 0x39858a, - 0x3dce42, - 0x218b42, - 0x3b4cc2, - 0x12644509, - 0x12b63a0a, - 0x142e5c7, - 0x12e04d82, - 0x140abc3, - 0x2e82, - 0x163a0a, - 0x1878ce, - 0x24ec04, - 0x5bd85, - 0x1362d7c3, - 0x3d4c3, - 0x233743, - 0x251184, - 0x1c1f46, - 0x220583, - 0x222884, - 0x219e43, - 0x13ee09, - 0x157646, - 0x205e03, - 0xe9644, - 0x10a4c3, - 0x206b43, - 0xfc85, - 0x2013c3, - 0x23cf83, - 0x14e60c4, - 0x25b583, - 0x6a04, - 0x207b83, - 0xa14c8, - 0x109406, - 0x15089c4, - 0x132605, - 0x13774a, - 0x12b382, - 0x1a7b46, - 0x48fd1, - 0x13e44509, - 0x132688, - 0x50308, - 0x1c6547, - 0x2442, - 0xe834e, - 0x12dacb, - 0x132e0b, - 0x19018a, - 0x89a4a, - 0x2afc7, - 0xa14c8, - 0x11d0c8, - 0x7947, - 0x1a81414b, - 0x1b047, - 0x1c742, - 0x7dc87, - 0xd4b8a, - 0x48a4f, - 0x4604f, - 0xd5e42, - 0x2782, - 0xa5f48, - 0xe1f0a, - 0xdfaca, - 0x54a4a, - 0x6ba48, - 0xe188, - 0x5d448, - 0xdff88, - 0x173088, - 0x2942, - 0x45dcf, - 0xa0d8b, - 0x6c648, - 0x3fbc7, - 0x374a, - 0x19ee0b, - 0x80b89, - 0x4aac7, - 0xe088, - 0x19dc4c, - 0x1a0047, - 0x6644a, - 0x18b08, - 0x29f4e, - 0x2a70e, - 0x2ae0b, - 0x3850b, - 0xde14b, - 0xe4b09, - 0xe518b, - 0xebb0d, - 0x10138b, - 0x110d0d, - 0x11108d, - 0x103c8a, - 0x315cb, - 0x3d54b, - 0x18af05, - 0x1ac24b50, - 0x168cf, - 0x10b5cf, - 0xe558d, - 0x13efd0, - 0x758c2, - 0x1b21e488, - 0x5d88, - 0x6e4d0, - 0x11e60e, - 0x1b7675c5, - 0x5010b, - 0x13df10, - 0x57d48, - 0xe28a, - 0x386c9, - 0x64b87, - 0x64ec7, - 0x65087, - 0x659c7, - 0x66b87, + 0x200d82, + 0x25ce02, + 0x27bc02, + 0x216842, + 0x15388c, + 0x2b2a02, + 0x2ea082, + 0x214682, + 0x242bc2, + 0x211d83, + 0x200bc2, + 0x20ce83, + 0x224a82, + 0x2d33c2, + 0x23f7c3, + 0x240582, + 0x202442, + 0x214d02, + 0x2033c2, + 0x210b82, + 0x2e4542, + 0x214642, + 0x21ddc2, + 0x21d9c2, + 0x31ac4a, + 0x36630a, + 0x39c18a, + 0x3dd442, + 0x20fd02, + 0x3b9442, + 0x12e45889, + 0x13363c4a, + 0x1430787, + 0x13605102, + 0x14ed383, + 0x2542, + 0x163c4a, + 0x18b84e, + 0x23d544, + 0x77605, + 0x13e2f743, + 0x3f0c3, + 0x234e83, + 0x24f044, + 0x224943, + 0x221b84, + 0x214503, + 0x1405c9, + 0x1a2ac6, + 0x211d83, + 0xe3e84, + 0x176943, + 0x20ce83, + 0x7085, + 0x204783, + 0x23f7c3, + 0x143d444, + 0x259703, + 0x1069c4, + 0x2050c3, + 0xa7c88, + 0x176186, + 0x1575744, + 0x16d005, + 0x14bd0a, + 0x1237c2, + 0x1a7ac6, + 0x55e11, + 0x14645889, + 0x16d088, + 0x4e388, + 0x1c7bc7, + 0x3002, + 0xe31ce, + 0x12924b, + 0x1355cb, + 0x19c68a, + 0x892ca, + 0x26807, + 0xa7c88, + 0x114748, + 0x4e87, + 0x1b01530b, + 0x1b587, + 0x1c782, + 0x5d4c7, + 0x27f0a, + 0x5588f, + 0x3cb4f, + 0x291c2, + 0x3102, + 0x864c8, + 0xe3aca, + 0xdde8a, + 0x52b0a, + 0x18ca48, + 0xc288, + 0x5bb48, + 0xde348, + 0x16c848, + 0x7682, + 0x3c8cf, + 0xa1f8b, + 0x18d648, + 0x39dc7, + 0x168a, + 0x13a0cb, + 0x35309, + 0x49547, + 0xc188, + 0x15fe8c, + 0x1385c7, + 0xdad4a, + 0xfcc8, + 0x2578e, + 0x25f4e, + 0x2664b, + 0x296cb, + 0x2c0cb, + 0x2cf89, + 0x6cb8b, + 0x6d68d, + 0xdc28b, + 0xf990d, + 0xf9c8d, + 0xfd7ca, + 0xfef4b, + 0x3b8cb, + 0x3f545, + 0x1b424010, + 0x174cf, + 0x13218f, + 0x6e90d, + 0x140790, + 0x69102, + 0x1ba1ed48, + 0x11d08, + 0xa1150, + 0x11578e, + 0x1bf68d45, + 0x4e18b, + 0x13f6d0, + 0x55548, + 0xc38a, + 0x29889, + 0x63007, + 0x63347, + 0x63507, + 0x63d47, + 0x65147, + 0x65747, + 0x66087, + 0x665c7, 0x67107, - 0x67807, - 0x67d47, - 0x68287, - 0x68607, - 0x68cc7, - 0x68e87, - 0x69047, + 0x67487, + 0x67b47, + 0x67d07, + 0x67ec7, + 0x68087, 0x69207, - 0x69947, - 0x69cc7, - 0x6a787, - 0x6ab47, - 0x6b107, - 0x6b3c7, - 0x6b587, - 0x6c8c7, - 0x6cd87, - 0x6cf87, - 0x6d347, - 0x6d507, - 0x6d6c7, - 0x6ee07, - 0x70247, - 0x70647, - 0x70e07, - 0x710c7, - 0x71447, - 0x71607, - 0x71a07, - 0x72f87, - 0x739c7, + 0x69ac7, + 0x6ac47, + 0x6b007, + 0x6b647, + 0x6b907, + 0x6bac7, + 0x6bdc7, + 0x6fe07, + 0x70007, + 0x703c7, + 0x70587, + 0x70747, + 0x71387, + 0x72987, + 0x72e07, + 0x73907, + 0x73bc7, 0x73f47, 0x74107, - 0x742c7, - 0x75b07, - 0x76587, - 0x76ac7, - 0x770c7, - 0x77287, - 0x77607, - 0x77b47, - 0x37482, - 0x5d54a, - 0xe9787, - 0x8b705, - 0x9a3d1, - 0x1d21c6, - 0xf2f0a, - 0xa5dca, - 0x59706, - 0x15578b, + 0x74507, + 0x755c7, + 0x75a07, + 0x75f87, + 0x76147, + 0x76307, + 0x76b87, + 0x77747, + 0x77c87, + 0x78207, + 0x783c7, + 0x78747, + 0x79347, + 0x4582, + 0x5bc4a, + 0xe3fc7, + 0x888c5, + 0xa6411, + 0x1b9e06, + 0xf5a8a, + 0x8634a, + 0x57b06, + 0xacf8b, 0x642, - 0x2fad1, - 0xb3dc9, - 0x967c9, - 0x7102, - 0x8898a, - 0xa8549, - 0xa8c8f, - 0xa928e, - 0xaa8c8, - 0x373c2, - 0x108f09, - 0x19774e, - 0x1c848c, - 0xeaa8f, - 0x1b174e, - 0x8284c, - 0xe4e09, - 0xe6711, - 0xe6cc8, - 0x19e052, - 0x19f60d, - 0x6eacd, - 0x16f00b, - 0x4da95, - 0x504c9, - 0x5c44a, - 0x73109, - 0x82c50, - 0x8700b, - 0x16e18f, - 0x1ca50b, - 0x916cc, - 0x93b50, - 0xa4cca, - 0xa620d, - 0xac4ce, - 0xae70a, - 0xaf0cc, - 0x150094, - 0xb3a51, - 0xb7f0b, - 0xb8f0f, - 0xb9d0d, - 0xba58e, - 0xbed8c, - 0xc1d8c, - 0xc304b, - 0xc3a0e, - 0xc42d0, - 0xc548b, - 0x134c0d, - 0x14288f, - 0xcfc0c, - 0xd0dce, - 0xd2d11, - 0xda08c, - 0xf5587, - 0xfc78d, - 0x11274c, - 0x1cf090, - 0x102dcd, - 0x11ac07, - 0x15c2d0, - 0x16f588, - 0x184ccb, - 0xb018f, - 0x17f8c8, - 0xf310d, - 0x107d10, - 0x175889, - 0x1bab22c6, - 0xb3143, - 0xba245, - 0x53a42, - 0x3bc9, - 0x5a34a, - 0x1bf9e506, - 0x1c27de84, - 0x5acc6, - 0x1d3ca, - 0xe5d0d, - 0x1c5313c9, - 0x19a03, - 0x114e0a, - 0xde5d1, - 0xdea09, - 0xdfa47, - 0xe0808, + 0x31b11, + 0x1522c9, + 0x98009, + 0x5ce02, + 0x8268a, + 0xa8c49, + 0xa938f, + 0xa998e, + 0xac2c8, + 0x5dc2, + 0x175c89, + 0x19b74e, + 0x1c1f4c, + 0xe534f, + 0x1b380e, + 0x2b3cc, + 0x6d309, + 0x6ee11, + 0x6f3c8, + 0x139312, + 0x13a8cd, + 0x16028d, + 0x172b4b, + 0x4e555, + 0x53889, + 0x5ac8a, + 0x5f309, + 0x74a50, + 0x7574b, + 0x8678f, + 0x171dcb, + 0x1c998c, + 0x91ad0, + 0x9748a, + 0xa2acd, + 0xabf4e, + 0xadcca, + 0xb00cc, + 0xc2a94, + 0x151f51, + 0xb5b0b, + 0xb7d0f, + 0xb970d, + 0xb9f8e, + 0xbc5cc, + 0xbe58c, + 0xc278b, + 0xc334e, + 0xc3c10, + 0xc4a0b, + 0x170d8d, + 0x14388f, + 0xcbe4c, + 0xcea0e, + 0xcfc11, + 0xd830c, 0xe0e07, - 0xe9848, - 0x45ecb, - 0x12d8c9, - 0xe9fd0, - 0xea48c, - 0xeaf48, - 0xeb3c5, - 0x1b9288, - 0x1bcd8a, - 0x19ac7, - 0x12e547, - 0x13c2, - 0x13ec0a, - 0x147488, - 0x1c3689, - 0x78505, - 0x11a90a, - 0x8f40f, - 0x12a2cb, - 0x1b4dcc, - 0x15c812, - 0x78845, - 0xed2c8, - 0x51c0a, - 0x1caf7605, - 0x17770c, - 0x13b403, - 0x1a1602, - 0x10004a, - 0x15003cc, - 0x1a03c8, - 0x110ec8, - 0x1cf47506, - 0x18c8c7, - 0x16f82, - 0x9482, - 0x4ecd0, - 0x72847, - 0x2f0cf, - 0x5bac6, - 0x7c64e, - 0x1592cb, - 0x49f88, - 0x80f49, - 0x1991d2, - 0x11570d, - 0x115f88, - 0xae909, - 0xd8f4d, - 0x18be89, - 0x19628b, - 0x1d1c08, - 0x7c988, - 0x7ec48, - 0x7f089, - 0x7f28a, - 0x7ff4c, - 0xea74a, - 0x1c20c7, - 0x55c8d, - 0xe6fd1, - 0x1d2ba886, - 0x1b068b, - 0x12bf0c, - 0x10448, - 0x48589, - 0x17c5cd, - 0x1a7d50, - 0xd2c2, - 0x14500d, - 0x7d82, - 0x1a6c2, - 0x1c200a, - 0x10c20a, - 0xf2e0a, - 0xf3c8b, - 0x2a98c, - 0x11c8cc, - 0x11cbca, - 0x11ce4e, - 0x1dc80d, - 0x1d5dcd05, - 0x136288, - 0xa842, - 0x1430c68e, - 0x14a0750e, - 0x152046ca, - 0x15b322ce, - 0x16202f4e, - 0x16b7350c, - 0x142e5c7, - 0x142e5c9, - 0x140abc3, - 0x173cd68c, - 0x17a758c9, - 0x18329b09, - 0x18b37549, - 0x2e82, - 0x10c5d1, - 0x7451, - 0x460d, - 0x132211, - 0x2e91, - 0x17344f, - 0x1cd5cf, - 0x7580c, - 0x129a4c, - 0x13748c, - 0x14364d, - 0x202d5, - 0x581cc, - 0x6964c, - 0x133510, - 0x17910c, - 0x18954c, - 0x199c99, - 0x1a9299, - 0x1b2559, - 0x1c0f94, - 0x1c3c94, - 0x7ad4, - 0x8554, - 0x8ad4, - 0x19258289, - 0x19807d89, - 0x1a269709, - 0x146e6ec9, - 0x2e82, - 0x14ee6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x156e6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x15ee6ec9, - 0x2e82, - 0x166e6ec9, - 0x2e82, - 0x16ee6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x176e6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x17ee6ec9, - 0x2e82, - 0x186e6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x18ee6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x196e6ec9, - 0x2e82, - 0x19ee6ec9, - 0x2e82, - 0x1a6e6ec9, - 0x2e82, - 0x7aca, - 0x2e82, - 0x48fc5, - 0x190184, - 0x10c68e, - 0x750e, - 0x79d4e, - 0x46ca, - 0x1322ce, - 0x2f4e, - 0x17350c, - 0x1cd68c, - 0x758c9, - 0x129b09, - 0x137549, - 0x58289, - 0x7d89, - 0x69709, - 0x204cd, - 0x8809, - 0x8d89, - 0x141e44, - 0x1d5f44, - 0x18d184, - 0x149c84, - 0xa3e84, - 0x2c684, - 0x36a04, - 0x52644, - 0x103a04, - 0x159da03, - 0x31b07, - 0x3484c, - 0x20c3, - 0x758c2, - 0x1dc803, - 0x20c3, - 0x35e03, - 0x148702, - 0x1da608, - 0x12d947, - 0x2942, + 0xeea0d, + 0xf6c0c, + 0x108c10, + 0x1ccf4d, + 0xfffc7, + 0x145d10, + 0x166548, + 0x1730cb, + 0xb184f, + 0x120648, + 0xf5c8d, + 0x103a10, + 0x17ef89, + 0x1c2b36c6, + 0xb4d43, + 0xba545, + 0x51b42, + 0x1b09, + 0x584ca, + 0x1c7397c6, + 0x1ca5d6c4, + 0x58e46, + 0x1d40a, + 0x81b0d, + 0x1cd68009, + 0x166c3, + 0x106cca, + 0xdd091, + 0xdd4c9, + 0xdde07, + 0xdeb88, + 0xdf187, + 0xe4088, + 0x3c9cb, + 0x125b89, + 0xe4810, + 0xe4ccc, + 0xe5808, + 0xe5c85, + 0xa088, + 0x10630a, + 0x139147, + 0x129f47, + 0x2f42, + 0x1403ca, + 0x14aac8, + 0x1c5009, + 0x79d05, + 0x11034a, + 0x8f30f, + 0x12284b, + 0x1b954c, + 0x146252, + 0x7ce85, + 0xe7948, + 0x4f34a, + 0x1d2f1585, + 0x1866cc, + 0x13d203, + 0x1a1642, + 0xfafcb, + 0xfc88a, + 0x14fcc0c, + 0x138948, + 0xf9ac8, + 0x1d74ab46, + 0x688c7, + 0x129c2, + 0x5fc2, + 0x4cb90, + 0x69387, + 0x3128f, + 0x1c6b46, + 0x15b10e, + 0x9640b, + 0x18fe88, + 0x356c9, + 0x17bf92, + 0x10ac0d, + 0x10b488, + 0xd6ec9, + 0x14c80d, + 0x19a249, + 0x5c8b, + 0x6bf48, + 0x79148, + 0x7ccc8, + 0x7ffc9, + 0x801ca, + 0x872cc, + 0x3bb8a, + 0xe898a, + 0x10a487, + 0x4840d, + 0x6f6d1, + 0x1daba286, + 0x1b1c4b, + 0x1241cc, + 0x2eb08, + 0x47309, + 0x18058d, + 0x1a7cd0, + 0x17dbcd, + 0x13602, + 0x66dcd, + 0x4cc2, + 0x187c2, + 0x10a3ca, + 0x124ca, + 0xf598a, + 0x11308b, + 0x261cc, + 0x11424a, + 0x1144ce, + 0x18820d, + 0x1dddd305, + 0x12d5c8, + 0x8c42, + 0x14b7704e, + 0x15203f4e, + 0x15a0260a, + 0x1636ccce, + 0x16b21f4e, + 0x172fbe8c, + 0x1430787, + 0x1430789, + 0x14ed383, + 0x17bbeccc, + 0x18342d09, + 0x18b44d49, + 0x1934bb09, + 0x2542, + 0x176f91, + 0x3e91, + 0x254d, + 0x16cc11, + 0x121e91, + 0xfbdcf, + 0x1bec0f, + 0x142c4c, + 0x144c8c, + 0x14ba4c, + 0x16880d, + 0x6a395, + 0x7eb8c, + 0x135ccc, + 0x17ca50, + 0x1947cc, + 0x1a9b4c, + 0x1ae759, + 0x1b4c99, + 0x1b6c19, + 0x1bb6d4, + 0x1c3194, + 0x1c42d4, + 0x1c5614, + 0x5014, + 0x19a7ec49, + 0x1a1c4589, + 0x1ab35d89, + 0x14e6f5c9, + 0x2542, + 0x1566f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x15e6f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x1666f5c9, + 0x2542, + 0x16e6f5c9, + 0x2542, + 0x1766f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x17e6f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x1866f5c9, + 0x2542, + 0x18e6f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x1966f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x19e6f5c9, + 0x2542, + 0x1a66f5c9, + 0x2542, + 0x1ae6f5c9, + 0x2542, + 0x500a, + 0x2542, + 0x55e05, + 0x19c684, + 0x17704e, + 0x3f4e, + 0x7b4ce, + 0x260a, + 0x16ccce, + 0x121f4e, + 0xfbe8c, + 0x1beccc, + 0x142d09, + 0x144d49, + 0x14bb09, + 0x7ec49, + 0x1c4589, + 0x135d89, + 0x6a58d, + 0x194889, + 0x52c9, + 0x1497c4, + 0x1d7144, + 0x69104, + 0x154b84, + 0xa4084, + 0x2dd44, + 0x37dc4, + 0x4df04, + 0xfe484, + 0x15a1203, + 0xe3687, + 0x35fcc, + 0x31643, + 0x69102, + 0x188203, + 0x31643, + 0x90f43, + 0x7842, + 0x7848, + 0x125c07, + 0x7682, 0x2000c2, - 0x202782, - 0x203dc2, - 0x219d02, + 0x203102, + 0x201d02, + 0x2143c2, 0x200382, 0x2003c2, - 0x209482, - 0x22d7c3, - 0x233743, - 0x220583, - 0x219c83, - 0x206b43, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x206b43, - 0x23cf83, - 0xb243, - 0x220583, - 0x22884, + 0x205fc2, + 0x22f743, + 0x234e83, + 0x224943, + 0x214343, + 0x20ce83, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x20ce83, + 0x23f7c3, + 0xb9c3, + 0x224943, + 0x21b84, 0x2000c2, - 0x24ce83, - 0x1fa2d7c3, - 0x38abc7, - 0x220583, - 0x214903, - 0x205184, - 0x206b43, - 0x23cf83, - 0x21d60a, - 0x239605, - 0x213c43, - 0x21be02, - 0xa14c8, - 0xa14c8, - 0x2782, - 0x1392c2, - 0x2033114b, - 0x2062da44, - 0x7ddc5, - 0x5f85, - 0x1d9c46, - 0x20a05f85, - 0x57243, - 0x1080c3, - 0x109744, - 0x3283, - 0x131905, - 0x12dac5, - 0xa14c8, - 0x1b047, - 0x2d7c3, - 0x2123a4c7, - 0x3686, - 0x21573345, - 0x3a5c7, - 0xbb4a, - 0xba08, - 0xea47, - 0x679ca, - 0x183548, - 0x33c87, - 0x1a618f, - 0x3e047, - 0x52446, - 0x13df10, - 0xf43cf, - 0x12789, - 0x5ad44, - 0x2183a68e, - 0x50949, - 0x69346, - 0x1071c9, - 0x18bb06, - 0x1c4d06, - 0x6c40c, - 0x19f00a, - 0x80d07, - 0x1cd10a, - 0x160a49, - 0xef0cc, - 0x1b4a8a, - 0x60c0a, - 0x131949, - 0x5acc6, - 0x80dca, - 0x11658a, - 0x9cf0a, - 0x11a349, - 0xdce88, - 0xdd106, - 0xe3a0d, - 0xbacc5, - 0x21f4df8c, - 0x137987, - 0x1051c9, - 0xb4147, - 0x10cad4, - 0x10cfcb, - 0x3fa0a, - 0x19904a, - 0xa65cd, - 0x14f3e89, - 0x1154cc, - 0x115d8b, - 0x18b03, - 0x18b03, - 0x29f46, - 0x18b03, - 0x1d9c48, - 0x1cd543, - 0x150c443, - 0x54389, - 0x14cfe83, - 0x82ec7, - 0x22dc6409, - 0x12a06, - 0x1081c9, - 0x4ce83, - 0xa14c8, - 0x2782, - 0x51184, - 0x88dc3, - 0x1da885, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x20a683, - 0x22d7c3, - 0x233743, - 0x228843, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x296983, - 0x207b83, - 0x20a683, - 0x241844, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x204f03, - 0x249c6505, - 0x142c183, - 0x22d7c3, - 0x233743, - 0x219d03, - 0x228843, - 0x220583, - 0x222884, - 0x37fa83, - 0x22a243, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x213c43, - 0x2561dac3, - 0x15c709, - 0x2782, - 0x2097c3, - 0x2622d7c3, - 0x233743, - 0x24adc3, - 0x220583, - 0x217343, - 0x22a243, - 0x23cf83, - 0x21c3c3, - 0x369444, - 0xa14c8, - 0x26a2d7c3, - 0x233743, - 0x2aa983, - 0x220583, - 0x205e03, - 0x205184, - 0x206b43, - 0x23cf83, - 0x22ec43, - 0xa14c8, - 0x2722d7c3, - 0x233743, - 0x228843, - 0x2013c3, - 0x23cf83, - 0xa14c8, - 0x142e5c7, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x205184, - 0x206b43, - 0x23cf83, - 0x12dac5, - 0x14c47, - 0x10cd0b, - 0xdee04, - 0xbacc5, - 0x144b148, - 0xaafcd, - 0x286e75c5, - 0x9a544, - 0x2782, - 0x1083, - 0x175785, - 0x2ebc2, - 0x2b82, - 0x3cc145, - 0xa14c8, - 0x18b02, - 0x1d003, - 0x16240f, - 0x2782, - 0xfd346, - 0x2ebc2, - 0x32c608, - 0x241844, - 0x340cc6, - 0x343506, - 0xa14c8, - 0x301983, - 0x2c6689, + 0x24af03, + 0x2022f743, + 0x38fa87, + 0x224943, + 0x20e943, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x21d64a, + 0x22a7c5, + 0x214e03, + 0x21a602, + 0xa7c88, + 0xa7c88, + 0x3102, + 0x1379c2, + 0x20b67d8b, + 0x20e2f9c4, + 0x5d605, + 0xe745, + 0x100a86, + 0x2120e745, + 0x54f03, + 0x1668c3, + 0x9c4, + 0x11c3, + 0x1273c5, + 0x129245, + 0xa7c88, + 0x1b587, + 0x2f743, + 0x21a3a407, + 0x15c6, + 0x21d6cb05, + 0x3a507, + 0xac8a, + 0xab48, + 0xcb47, + 0x6624a, + 0x18e448, + 0x64bc7, + 0x1a63cf, + 0x3f147, + 0x4dd06, + 0x13f6d0, + 0x7338f, + 0x19209, + 0x58ec4, + 0x2203a5ce, + 0x3ad49, + 0x681c6, + 0x102ec9, + 0x190b46, + 0x1a8ac6, + 0x18d40c, + 0x13a2ca, + 0x35487, + 0x12184a, + 0x176749, + 0xe938c, + 0x1b920a, + 0x8970a, + 0x127409, + 0x58e46, + 0x3554a, + 0x10bb0a, + 0x9fcca, + 0x112349, + 0xdb6c8, + 0xdb946, + 0xe0fcd, + 0xbaf85, + 0x2275308c, + 0x14bf47, + 0x1015c9, + 0xb3207, + 0x103e14, + 0x10430b, + 0x39c0a, + 0x17be0a, + 0xa5a0d, + 0x1513289, + 0x10a9cc, + 0x10b28b, + 0xfcc3, + 0xfcc3, + 0x25786, + 0xfcc3, + 0x100a88, + 0x156b03, + 0x35685, + 0x1412703, + 0x52449, + 0x14cc0c3, + 0x146dbc7, + 0x74cc7, + 0x235c7a89, + 0xcd46, + 0x174f49, + 0x4af03, + 0xa7c88, + 0x3102, + 0x4f044, + 0x7b83, + 0x7ac5, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x21c183, + 0x22f743, + 0x234e83, + 0x20d343, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x2981c3, + 0x2050c3, + 0x21c183, + 0x250784, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x209983, + 0x251c7b85, + 0x142da83, + 0x22f743, + 0x234e83, + 0x2143c3, + 0x20d343, + 0x224943, + 0x221b84, + 0x201143, + 0x225a83, + 0x211d83, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x214e03, + 0x25e1e383, + 0x146149, + 0x3102, + 0x3a8583, + 0x26a2f743, + 0x234e83, + 0x249843, + 0x224943, + 0x215cc3, + 0x225a83, + 0x23f7c3, + 0x2f16c3, + 0x39cb04, + 0xa7c88, + 0x2722f743, + 0x234e83, + 0x2ac383, + 0x224943, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x230e03, + 0xa7c88, + 0x27a2f743, + 0x234e83, + 0x20d343, + 0x204783, + 0x23f7c3, + 0xa7c88, + 0x1430787, + 0x24af03, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x129245, + 0xe747, + 0x10404b, + 0xdd8c4, + 0xbaf85, + 0x14441c8, + 0x1e00d, + 0x28e6fcc5, + 0x81b84, + 0x3102, + 0xd103, + 0x17ee85, + 0x28002, + 0x1dc2, + 0x326705, + 0xa7c88, + 0xfcc2, + 0x2a83, + 0x16264f, + 0x3102, + 0xf7806, + 0x28002, + 0x3248c8, + 0x250784, + 0x348806, + 0x34b906, + 0xa7c88, + 0x31a3c3, + 0x2c5c09, 0x359a95, 0x159a9f, - 0x22d7c3, - 0x3c0b52, - 0x16ed46, - 0x17fe05, - 0xe28a, - 0x386c9, - 0x3c090f, - 0x2dd2c4, - 0x25e605, - 0x30e590, - 0x2449c7, - 0x2013c3, - 0x2fb908, - 0x10b906, - 0x27ee0a, - 0x206f84, - 0x2f7043, - 0x21be02, - 0x2f060b, - 0x13c3, - 0x19c3c4, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x2fe843, - 0x202782, - 0xe16c3, - 0xf984, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x214903, - 0x226243, - 0x23cf83, - 0x4ce83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x206b43, - 0x13c3, - 0x23cf83, + 0x22f743, + 0x3c2d52, + 0x172886, + 0x1825c5, + 0xc38a, + 0x29889, + 0x3c2b0f, + 0x2dbb04, + 0x36b785, + 0x304a10, + 0x245d47, + 0x204783, + 0x314d88, + 0x1324c6, + 0x29248a, + 0x203b04, + 0x2f0fc3, + 0x21a602, + 0x2eaa8b, + 0x4783, + 0x19fbc4, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x2f8f83, + 0x203102, + 0x1a95c3, + 0x6d84, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x20e943, + 0x225283, + 0x23f7c3, + 0x4af03, + 0x203102, + 0x22f743, + 0x234e83, + 0x20ce83, + 0x4783, + 0x23f7c3, 0x2000c2, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x5f85, - 0x241844, - 0x22d7c3, - 0x233743, - 0x3216c4, - 0x206b43, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x6df83, - 0x23cf83, - 0x137249, - 0x22d7c3, - 0x233743, - 0x228843, - 0x209a03, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x32ef44, - 0x222884, - 0x206b43, - 0x23cf83, - 0x207b83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x6df83, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x2067c3, - 0x44b03, - 0x14903, - 0x206b43, - 0x23cf83, - 0x323aca, - 0x345349, - 0x35c04b, - 0x35d44a, - 0x3660ca, - 0x376b8b, - 0x38b8ca, - 0x391f8a, - 0x39858a, - 0x39880b, - 0x3bcac9, - 0x3c94ca, - 0x3c9c8b, - 0x3d680b, - 0x3db74a, - 0x22d7c3, - 0x233743, - 0x228843, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x17830b, - 0x5e148, - 0xd9084, - 0x46006, - 0xec149, - 0xa14c8, - 0x22d7c3, - 0xe284, - 0x264b84, - 0x20d142, - 0x205184, - 0x331e45, - 0x20a683, - 0x241844, - 0x22d7c3, - 0x236204, - 0x233743, - 0x251184, - 0x2dd2c4, - 0x222884, - 0x22a243, - 0x206b43, - 0x23cf83, - 0x3451c5, - 0x204f03, - 0x213c43, - 0x210f43, - 0x23d804, - 0x309384, - 0x308485, - 0xa14c8, - 0x2010c4, - 0x3c4e86, - 0x331a84, - 0x202782, - 0x35cc07, - 0x249587, - 0x24e444, - 0x25bec5, - 0x302fc5, - 0x22e1c5, - 0x222884, - 0x3883c8, - 0x239006, - 0x34c488, - 0x27a4c5, - 0x2e43c5, - 0x235fc4, - 0x23cf83, - 0x2f7dc4, - 0x3751c6, - 0x239703, - 0x23d804, - 0x243185, - 0x203b44, - 0x255ac4, - 0x21be02, - 0x39f906, - 0x3aec06, - 0x313d05, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0xe745, + 0x250784, + 0x22f743, + 0x234e83, + 0x346484, + 0x20ce83, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x144a49, + 0x22f743, + 0x234e83, + 0x20d343, + 0x2083c3, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x342644, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x2050c3, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x203843, + 0x45e83, + 0xe943, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x31ac4a, + 0x346cc9, + 0x35db4b, + 0x35e24a, + 0x36630a, + 0x37a0cb, + 0x39090a, + 0x395f8a, + 0x39c18a, + 0x39c40b, + 0x3bcf09, + 0x3c8bca, + 0x3c910b, + 0x3d588b, + 0x3da58a, + 0x22f743, + 0x234e83, + 0x20d343, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x1872cb, + 0x5c848, + 0x14c944, + 0x3cb06, + 0xfda89, + 0xa7c88, + 0x22f743, + 0xc384, + 0x263004, + 0x213482, + 0x209c04, + 0x327905, + 0x21c183, + 0x250784, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x24f044, + 0x2dbb04, + 0x221b84, + 0x225a83, + 0x20ce83, + 0x23f7c3, + 0x266f85, + 0x209983, + 0x214e03, + 0x252c43, + 0x23bb84, + 0x376104, + 0x375205, + 0xa7c88, + 0x331c04, + 0x3a8c46, + 0x327544, + 0x203102, + 0x346647, + 0x247947, + 0x24bd44, + 0x25a1c5, + 0x3cd145, + 0x230145, + 0x221b84, + 0x38c348, + 0x22a1c6, + 0x34de48, + 0x27bc45, + 0x2e1985, + 0x265e44, + 0x23f7c3, + 0x2f2484, + 0x378f06, + 0x22a8c3, + 0x23bb84, + 0x234545, + 0x201a84, + 0x248244, + 0x21a602, + 0x337e86, + 0x3b01c6, + 0x308005, 0x2000c2, - 0x24ce83, - 0x30a02782, - 0x21e604, + 0x24af03, + 0x31203102, + 0x21eec4, 0x200382, - 0x205e03, - 0x245ec2, - 0x206b43, + 0x211d83, + 0x23c9c2, + 0x20ce83, 0x2003c2, - 0x2f4786, - 0x202003, - 0x207b83, - 0xab204, - 0xa14c8, - 0xa14c8, - 0x220583, - 0x6df83, + 0x2edc06, + 0x202443, + 0x2050c3, + 0xa7c88, + 0xa7c88, + 0x224943, + 0x71003, 0x2000c2, - 0x31602782, - 0x220583, - 0x268fc3, - 0x37fa83, - 0x22da44, - 0x206b43, - 0x23cf83, - 0xa14c8, + 0x31e03102, + 0x224943, + 0x264983, + 0x201143, + 0x22f9c4, + 0x20ce83, + 0x23f7c3, + 0xa7c88, 0x2000c2, - 0x31e02782, - 0x22d7c3, - 0x206b43, - 0x13c3, - 0x23cf83, + 0x32603102, + 0x22f743, + 0x20ce83, + 0x4783, + 0x23f7c3, 0x682, - 0x2062c2, - 0x2195c2, - 0x214903, - 0x2ef083, + 0x205842, + 0x210782, + 0x20e943, + 0x2e9343, 0x2000c2, - 0x12dac5, - 0xa14c8, - 0x14c47, - 0x202782, - 0x233743, - 0x251184, - 0x204183, - 0x220583, - 0x209a03, - 0x205e03, - 0x206b43, - 0x212203, - 0x23cf83, - 0x234703, - 0x1cb6d3, - 0x127714, - 0x12dac5, - 0x14c47, - 0x114486, - 0x111b4b, - 0x29f46, - 0x58587, - 0x5bec6, + 0x129245, + 0xa7c88, + 0xe747, + 0x203102, + 0x234e83, + 0x24f044, + 0x2020c3, + 0x224943, + 0x2083c3, + 0x211d83, + 0x20ce83, + 0x2130c3, + 0x23f7c3, + 0x22a803, + 0x11f293, + 0x125d94, + 0x129245, + 0xe747, + 0x109706, + 0x113ccb, + 0x25786, + 0x56387, + 0x5a1c6, 0x649, - 0x10408a, - 0x8af4d, - 0x1a0d8c, - 0x116f0a, - 0xf9708, - 0x45585, - 0xbb88, - 0x5bac6, - 0x1be646, - 0xec046, + 0xd39ca, + 0x8ab4d, + 0x14f50c, + 0x10c48a, + 0xf3dc8, + 0x1339c5, + 0xacc8, + 0x1c6b46, + 0x1c0ec6, + 0xfd986, 0x602, - 0x2758c2, - 0x7844, - 0x9b106, - 0x178050, - 0x83a0e, - 0x49c6, - 0x177e0c, - 0x336488cb, - 0x12dac5, - 0x1407cb, - 0x33bbe584, - 0x190347, - 0x23ed1, - 0x10388a, - 0x22d7c3, - 0x67945, - 0x160308, - 0x16f44, - 0x5a545, - 0x33d10886, - 0x9a3c6, - 0xbc406, - 0x91d4a, - 0x198ac3, - 0x34242584, - 0x54389, - 0x1784a, - 0x14cea89, + 0x269102, + 0x4284, + 0x90f46, + 0x187010, + 0x82e4e, + 0x2906, + 0x186dcc, + 0x33e5570b, + 0x129245, + 0x14420b, + 0x343c0e04, + 0x19c847, + 0x21fd1, + 0xfe30a, + 0x22f743, + 0x661c5, + 0x12a3c8, + 0x12984, + 0x586c5, + 0x3448e546, + 0xa6406, + 0xc1886, + 0x9224a, + 0x1a8383, + 0x34a436c4, + 0x52449, + 0x14dfc7, + 0x161ca, + 0x14cd7c9, 0x605, - 0x110c83, - 0x3479e587, - 0xfc85, - 0x1563046, - 0x15584c, - 0xfac48, - 0xf084b, - 0xdf44b, - 0x34a4b78c, - 0x140c0c3, - 0xbbf88, - 0xf0ac5, - 0xa0c09, - 0xf3f88, - 0x141d306, - 0x89947, - 0x34f7c5c9, - 0x12b3c7, - 0x15e1ca, - 0x115a4d, - 0x140fc8, - 0x20c3, - 0x108943, - 0x1d9c48, - 0x103a04, - 0x129285, - 0xe8507, - 0x35245dc3, - 0x3575fec6, - 0x35af8644, - 0x35f00207, - 0x1d9c44, - 0x1d9c44, - 0x1d9c44, - 0x1d9c44, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, + 0xfd743, + 0x34f39847, + 0x7085, + 0x1563286, + 0xad04c, + 0xf4f88, + 0xeaccb, + 0x10f9cb, + 0x35249bcc, + 0x1405a83, + 0xbc288, + 0xeaf45, + 0xa1e09, + 0x113388, + 0x141d346, + 0x891c7, + 0x35780589, + 0xc6787, + 0x17894a, + 0x10af4d, + 0x7608, + 0x31643, + 0x1756c3, + 0x100a88, + 0xfe484, + 0x120b85, + 0xe3387, + 0x35a3c8c3, + 0x35f54206, + 0x362f2d04, + 0x366fca47, + 0x100a84, + 0x100a84, + 0x100a84, + 0x100a84, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, 0x2000c2, - 0x202782, - 0x220583, - 0x2067c2, - 0x206b43, - 0x23cf83, - 0x202003, - 0x38054f, - 0x38090e, - 0xa14c8, - 0x22d7c3, - 0x43447, - 0x233743, - 0x220583, - 0x219e43, - 0x206b43, - 0x23cf83, - 0x4904, - 0x33c4, - 0xa04, - 0x21cd03, - 0x30a807, - 0x201842, - 0x2c9689, - 0x200b02, - 0x24efcb, - 0x2a52ca, - 0x2e2689, + 0x203102, + 0x224943, + 0x203842, + 0x20ce83, + 0x23f7c3, + 0x202443, + 0x382e0f, + 0x3831ce, + 0xa7c88, + 0x22f743, + 0x447c7, + 0x234e83, + 0x224943, + 0x214503, + 0x20ce83, + 0x23f7c3, + 0x2844, + 0x1304, + 0x131544, + 0x21c743, + 0x332907, + 0x202e82, + 0x2c9089, + 0x200ac2, + 0x24ce8b, + 0x29d7ca, + 0x268f09, 0x200542, - 0x2750c6, - 0x3ac995, - 0x24f115, - 0x230313, - 0x24f693, - 0x220f02, - 0x220f05, - 0x360e4c, - 0x27680b, - 0x296e05, - 0x2020c2, - 0x2ffe82, - 0x38f886, - 0x202442, - 0x260646, - 0x20e50d, - 0x20fa0c, - 0x224bc4, + 0x3be4c6, + 0x33ad55, + 0x24cfd5, + 0x3ad113, + 0x24d553, + 0x2197c2, + 0x21dbc5, + 0x32f1cc, + 0x2779cb, + 0x298645, + 0x202602, + 0x2fae02, + 0x393ac6, + 0x203002, + 0x37de46, + 0x20c60d, + 0x206e0c, + 0x224084, 0x200882, - 0x20c882, - 0x39e408, + 0x206c82, + 0x3396c8, 0x200202, - 0x30f9c6, - 0x30f9cf, - 0x393e90, - 0x3a39c4, - 0x3acb55, - 0x230493, - 0x204dc3, - 0x34320a, - 0x20ee07, - 0x35f709, - 0x217707, - 0x225a42, + 0x305bc6, + 0x305bcf, + 0x397e50, + 0x3a3c04, + 0x33af15, + 0x3ad293, + 0x209843, + 0x34850a, + 0x206207, + 0x36a889, + 0x216087, + 0x21c342, 0x200282, - 0x3b2246, - 0x207942, - 0xa14c8, - 0x201a42, - 0x2010c2, - 0x209247, - 0x341247, - 0x341251, - 0x218105, - 0x21810e, - 0x21860f, - 0x21c742, - 0x394547, - 0x21cd48, - 0x207c02, - 0x325802, - 0x2a9746, - 0x3418cf, - 0x2a9750, - 0x22b882, - 0x205cc2, - 0x32f488, - 0x212283, - 0x288f88, - 0x30bd8d, - 0x23af03, - 0x3723c8, - 0x23af0f, - 0x23b2ce, - 0x398d0a, - 0x226e51, - 0x2272d0, - 0x2bd68d, - 0x2bd9cc, - 0x3c2447, - 0x343387, - 0x340d89, - 0x224cc2, - 0x201942, - 0x259e0c, - 0x25a10b, - 0x2014c2, - 0x2c3206, - 0x22ec82, + 0x3b6906, + 0x204382, + 0xa7c88, + 0x208d42, + 0x209002, + 0x209007, + 0x268d07, + 0x268d11, + 0x217fc5, + 0x217fce, + 0x21a94f, + 0x21c782, + 0x398507, + 0x21cd88, + 0x205142, + 0x2bfa42, + 0x20f7c6, + 0x20f7cf, + 0x281750, + 0x22c542, + 0x207982, + 0x32b408, + 0x207983, + 0x25ed88, + 0x2e1d0d, + 0x280c03, + 0x34b748, + 0x280c0f, + 0x280fce, + 0x37baca, + 0x223111, + 0x223590, + 0x2c7bcd, + 0x2c7f0c, + 0x3a8407, + 0x348687, + 0x3488c9, + 0x21c302, + 0x201ec2, + 0x257f8c, + 0x25828b, + 0x200d42, + 0x2c2946, + 0x227f02, 0x200482, - 0x2d5e42, - 0x202782, - 0x22dbc4, - 0x23a187, - 0x22bdc2, - 0x23e4c7, - 0x240787, - 0x220282, - 0x22eec2, - 0x243305, - 0x237982, - 0x2e920e, - 0x38288d, - 0x233743, - 0x397d0e, - 0x2b628d, - 0x341643, - 0x201602, - 0x286d04, - 0x265582, - 0x2029c2, - 0x39b945, - 0x39d087, - 0x24a442, - 0x219d02, - 0x250d87, - 0x254708, - 0x2b06c2, - 0x2788c6, - 0x259c8c, - 0x259fcb, - 0x20e282, - 0x260e8f, - 0x261250, - 0x26164f, - 0x261a15, - 0x261f54, - 0x26244e, - 0x2627ce, - 0x262b4f, - 0x262f0e, - 0x263294, - 0x263793, - 0x263c4d, - 0x277d09, - 0x28cc43, - 0x204182, - 0x28dc85, - 0x3c70c6, + 0x2291c2, + 0x203102, + 0x22fb44, + 0x23a0c7, + 0x22ca82, + 0x23ffc7, + 0x241a47, + 0x227d02, + 0x231082, + 0x244685, + 0x224502, + 0x2e738e, + 0x38564d, + 0x234e83, + 0x28814e, + 0x3d1a0d, + 0x348cc3, + 0x202102, + 0x286204, + 0x24ab42, + 0x2072c2, + 0x39ee05, + 0x3a0887, + 0x2491c2, + 0x2143c2, + 0x24ec47, + 0x2527c8, + 0x2b1d82, + 0x27cf06, + 0x257e0c, + 0x25814b, + 0x208142, + 0x25f7cf, + 0x25fb90, + 0x25ff8f, + 0x260355, + 0x260894, + 0x260d8e, + 0x26110e, + 0x26148f, + 0x26184e, + 0x261bd4, + 0x2620d3, + 0x26258d, + 0x279509, + 0x28ce83, + 0x2020c2, + 0x35ac05, + 0x3ce486, 0x200382, - 0x367207, - 0x220583, + 0x2b5787, + 0x224943, 0x200642, - 0x232548, - 0x227091, - 0x2274d0, - 0x200bc2, - 0x28ba87, - 0x201b82, - 0x309a07, - 0x253a42, - 0x37ed89, - 0x38f847, - 0x318008, - 0x3106c6, - 0x2eef83, - 0x3cbdc5, - 0x2339c2, + 0x233b88, + 0x223351, + 0x223790, + 0x203702, + 0x28b387, + 0x201742, + 0x2a1687, + 0x251b42, + 0x3bde09, + 0x393a87, + 0x293348, + 0x28e386, + 0x2e9243, + 0x349345, + 0x212702, 0x2004c2, - 0x3d5e45, - 0x377b85, - 0x200f82, - 0x21c583, - 0x340b47, - 0x218447, - 0x204042, - 0x204044, - 0x218983, - 0x348009, - 0x218988, - 0x200b42, - 0x208002, - 0x22cec7, - 0x235d05, - 0x363388, - 0x246a07, - 0x209b83, - 0x29af86, - 0x2bd50d, - 0x2bd88c, - 0x2da786, - 0x202282, - 0x2df302, - 0x2024c2, - 0x23ad8f, - 0x23b18e, - 0x303047, - 0x205e02, - 0x3200c5, - 0x3200c6, - 0x202dc2, - 0x200c02, - 0x29f506, - 0x210203, - 0x309946, - 0x2ccec5, - 0x2ccecd, - 0x2cd515, - 0x2cdf4c, - 0x2ce2cd, - 0x2ce612, - 0x200e82, - 0x26cec2, - 0x201342, - 0x329906, - 0x3c8346, - 0x2013c2, - 0x3c7146, - 0x21a682, - 0x2c71c5, - 0x200d42, - 0x2e9349, - 0x222ecc, - 0x22320b, - 0x2003c2, - 0x2550c8, - 0x2039c2, - 0x201002, - 0x271746, - 0x2e6e45, - 0x309807, - 0x226ac5, - 0x25bc05, - 0x2434c2, - 0x20bc42, + 0x3d7045, + 0x386b45, + 0x201b02, + 0x22cb43, + 0x344587, + 0x20ea47, + 0x201f82, + 0x201f84, + 0x20fb43, + 0x2e64c9, + 0x20fb48, + 0x20e942, + 0x205542, + 0x2dcec7, + 0x2fa285, + 0x3635c8, + 0x227807, + 0x222303, + 0x290dc6, + 0x2c7a4d, + 0x2c7dcc, + 0x2d8a06, + 0x204482, + 0x2030c2, + 0x205982, + 0x280a8f, + 0x280e8e, + 0x3cd1c7, + 0x204802, + 0x31c445, + 0x31c446, + 0x21f382, + 0x200bc2, + 0x28fc06, + 0x20a643, + 0x20a646, + 0x2cb845, + 0x2cb84d, + 0x2cc255, + 0x2ccc8c, + 0x2cd00d, + 0x2cd352, + 0x204fc2, + 0x26ff42, 0x202142, - 0x2ead87, - 0x2f484d, - 0x2f4bcc, - 0x3abf47, - 0x278842, - 0x203d42, - 0x20cb48, - 0x203d48, - 0x2e7c08, - 0x2f30c4, - 0x2c3c87, - 0x27df03, - 0x223802, - 0x204f02, - 0x2f5849, - 0x22a347, - 0x213c42, - 0x271b45, - 0x241f42, - 0x21f4c2, - 0x3bfe83, - 0x3bfe86, - 0x2fe542, - 0x2ffa82, + 0x2fbc86, + 0x3c1e06, + 0x202f42, + 0x3ce506, + 0x218782, + 0x333105, + 0x2090c2, + 0x2e74c9, + 0x21980c, + 0x219b4b, + 0x2003c2, + 0x253188, + 0x201902, + 0x200a82, + 0x274246, + 0x26f545, + 0x200a87, + 0x222d85, + 0x277485, + 0x23cb02, + 0x20ad82, + 0x204ac2, + 0x2e5647, + 0x2edccd, + 0x2ee04c, + 0x3ac4c7, + 0x27ce82, + 0x201c82, + 0x20da88, + 0x201c88, + 0x2e2ac8, + 0x2f5c44, + 0x2c35c7, + 0x25d743, + 0x21a142, + 0x203b02, + 0x2ef7c9, + 0x225b87, + 0x214e02, + 0x274645, + 0x203542, + 0x228742, + 0x30b703, + 0x30b706, + 0x2f8c82, + 0x2faa02, 0x200402, - 0x27ea46, - 0x2ddb07, - 0x213a42, + 0x278f46, + 0x2e2087, + 0x214c02, 0x200902, - 0x288dcf, - 0x397b4d, - 0x3d364e, - 0x2b610c, - 0x202342, - 0x204482, - 0x310505, - 0x3220c6, - 0x202482, - 0x206382, + 0x25ebcf, + 0x287f8d, + 0x39bb4e, + 0x3d188c, + 0x204542, + 0x2023c2, + 0x28e1c5, + 0x319386, + 0x200b82, + 0x2046c2, 0x200682, - 0x246984, - 0x2fee04, - 0x355686, - 0x209482, - 0x27b0c7, - 0x233ec3, - 0x233ec8, - 0x23ba08, - 0x36ee87, - 0x253cc6, - 0x2037c2, - 0x2398c3, - 0x2b7387, - 0x287c86, - 0x2e3705, - 0x2f3448, - 0x203002, - 0x274e87, - 0x236082, - 0x308102, - 0x21bac2, - 0x218789, - 0x241542, - 0xc2148, - 0x201182, - 0x24fac3, - 0x331fc7, - 0x201202, - 0x22304c, - 0x22334b, - 0x2da806, - 0x310bc5, - 0x243982, - 0x202b42, - 0x2be3c6, - 0x267343, - 0x32ecc7, - 0x288782, + 0x227784, + 0x2e1b84, + 0x3580c6, + 0x205fc2, + 0x27c847, + 0x23df83, + 0x23df88, + 0x23e6c8, + 0x3729c7, + 0x24fb06, + 0x201702, + 0x238f43, + 0x2ab4c7, + 0x30d6c6, + 0x2e4f85, + 0x2f5fc8, + 0x2026c2, + 0x3be287, + 0x234542, + 0x354282, + 0x205c42, + 0x21aac9, + 0x201082, + 0xbe948, + 0x202a02, + 0x24d983, + 0x203c47, + 0x205202, + 0x21998c, + 0x219c8b, + 0x2d8a86, + 0x2fd685, + 0x244d02, + 0x201942, + 0x2bdbc6, + 0x229043, + 0x3423c7, + 0x282482, 0x2008c2, - 0x3ac815, - 0x24f2d5, - 0x2301d3, - 0x24f813, - 0x38a2c7, - 0x25fad1, - 0x266d10, - 0x276c52, - 0x27b891, - 0x29a7c8, - 0x29a7d0, - 0x2a168f, - 0x2a5093, - 0x384f52, - 0x3bc3d0, - 0x2b240f, - 0x2c0dd2, - 0x3a2291, - 0x2cca13, - 0x2d7212, - 0x2db24f, - 0x2dc04e, - 0x2e0392, - 0x2e2491, - 0x2ec80f, - 0x2fe1ce, - 0x2f0fd1, - 0x2fae10, - 0x2fbc92, - 0x2fe8d1, - 0x33c390, - 0x354d0f, - 0x3bd1d1, - 0x3c9890, - 0x31b8c6, - 0x33bf87, - 0x215907, - 0x203b02, - 0x2847c5, - 0x30e307, - 0x2195c2, - 0x206042, - 0x227d45, - 0x202243, - 0x308e06, - 0x2f4a0d, - 0x2f4d4c, - 0x206842, - 0x360ccb, - 0x2766ca, - 0x220dca, - 0x2bce09, - 0x2f284b, - 0x246b4d, - 0x30ea0c, - 0x27250a, - 0x2707cc, - 0x27778b, - 0x296c4c, - 0x2b464e, - 0x3560cb, - 0x2b588c, - 0x2e4083, - 0x38bd86, - 0x3bf082, - 0x2fc182, - 0x20f203, - 0x214f82, - 0x21e4c3, - 0x32ae06, - 0x261bc7, - 0x2d3b06, - 0x2e20c8, - 0x3409c8, - 0x31e8c6, - 0x20a342, - 0x3136cd, - 0x313a0c, - 0x2df607, - 0x316d47, - 0x2351c2, - 0x213e42, - 0x276c02, - 0x279b42, - 0x3388d6, - 0x33d315, - 0x340296, - 0x343993, - 0x344052, - 0x353a93, - 0x354012, - 0x3adb0f, - 0x3bdfd8, - 0x3beb57, - 0x3c0019, - 0x3c1498, - 0x3c2e18, - 0x3c4197, - 0x3c5a17, - 0x3c6816, - 0x3ce1d3, - 0x3ce8d5, - 0x3cf792, - 0x3cfc13, - 0x202782, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x205184, - 0x206b43, - 0x23cf83, - 0x202003, + 0x33abd5, + 0x24d195, + 0x3acfd3, + 0x24d6d3, + 0x248f47, + 0x259d91, + 0x25e050, + 0x2652d2, + 0x275191, + 0x277e08, + 0x277e10, + 0x29784f, + 0x29d593, + 0x2a6812, + 0x2a7e50, + 0x30014f, + 0x373352, + 0x3bc7d1, + 0x2b3813, + 0x2c0892, + 0x3a22cf, + 0x2cb4ce, + 0x2d47d2, + 0x2d51d1, + 0x2d94cf, + 0x2da2ce, + 0x2de751, + 0x2dfa90, + 0x2f8812, + 0x2eb451, + 0x2f5150, + 0x2f900f, + 0x2fc451, + 0x3018d0, + 0x35efc6, + 0x3cbf07, + 0x2137c7, + 0x201a42, + 0x283c05, + 0x304787, + 0x210782, + 0x20e802, + 0x22ab45, + 0x21e5c3, + 0x375b86, + 0x2ede8d, + 0x2ee1cc, + 0x2038c2, + 0x32f04b, + 0x27788a, + 0x21da8a, + 0x2bd149, + 0x2ecb4b, + 0x22794d, + 0x304e8c, + 0x27680a, + 0x272f8c, + 0x2788cb, + 0x29848c, + 0x2ef24e, + 0x2b458b, + 0x36e20c, + 0x2e1643, + 0x34c706, + 0x3c0dc2, + 0x2f6602, + 0x206603, + 0x205d42, + 0x21ed83, + 0x323386, + 0x260507, + 0x2d2b06, + 0x2e3c88, + 0x344408, + 0x315a46, + 0x200f02, + 0x3079cd, + 0x307d0c, + 0x30fb87, + 0x30c2c7, + 0x236942, + 0x215002, + 0x277dc2, + 0x27b2c2, + 0x336d56, + 0x33ead5, + 0x341c16, + 0x344f93, + 0x345652, + 0x356693, + 0x356dd2, + 0x3af0cf, + 0x3bf998, + 0x3c0897, + 0x3c13d9, + 0x3c2258, + 0x3c3698, + 0x3c47d7, + 0x3c5b17, + 0x3c70d6, + 0x3cad53, + 0x3cb695, + 0x3cc2d2, + 0x3cc753, + 0x203102, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x202443, 0x2000c2, - 0x206702, - 0x37e938c5, - 0x3828a305, - 0x3867e706, - 0xa14c8, - 0x38ab2985, - 0x202782, - 0x203dc2, - 0x38f2f1c5, - 0x39282b45, - 0x39683f47, - 0x39a84c49, - 0x39e37284, + 0x203782, + 0x386948c5, + 0x38a89f05, + 0x38e78c06, + 0xa7c88, + 0x392b3e85, + 0x203102, + 0x201d02, + 0x3972c885, + 0x39a82105, + 0x39e83387, + 0x3a284089, + 0x3a638644, 0x200382, 0x200642, - 0x3a24d8c5, - 0x3a698349, - 0x3ab37f88, - 0x3aeaef45, - 0x3b317887, - 0x3b613148, - 0x3baed185, - 0x3be45a86, - 0x3c2496c9, - 0x3c6d3388, - 0x3cac3848, - 0x3ce9898a, - 0x3d2e1804, - 0x3d60d685, - 0x3dabf848, - 0x3de03945, - 0x212302, - 0x3e237f83, - 0x3e6a5746, - 0x3eae6548, - 0x3efb8806, - 0x3f209388, - 0x3f727d86, - 0x3fa3dbc4, - 0x3fe02642, - 0x40301b47, - 0x406ab6c4, - 0x40a7a1c7, - 0x40f2f7c7, + 0x3aa5f145, + 0x3ae99b89, + 0x3b336408, + 0x3b6b0985, + 0x3bb0ce07, + 0x3be20688, + 0x3c2e7805, + 0x3c63c586, + 0x3ca47a89, + 0x3cedb288, + 0x3d2c3188, + 0x3d69a1ca, + 0x3dba9704, + 0x3de08705, + 0x3e2bf288, + 0x3e601885, + 0x2131c2, + 0x3ea32003, + 0x3eea5146, + 0x3f26d148, + 0x3f602e46, + 0x3fa09148, + 0x3ff26406, + 0x40241f04, + 0x40608ac2, + 0x40fdb307, + 0x412acd84, + 0x4167b947, + 0x41b2b747, 0x2003c2, - 0x4129dbc5, - 0x41644704, - 0x41ad29c7, - 0x41e31c87, - 0x42286b46, - 0x42683785, - 0x42a98447, - 0x42ed3208, - 0x4328e007, - 0x437cf549, - 0x43ad6385, - 0x43f125c7, - 0x44292f06, - 0x9a54b, - 0x44606548, - 0x22824d, - 0x27e1c9, - 0x2a874b, - 0x2aaa8b, - 0x3199cb, - 0x31758b, - 0x3222cb, - 0x32258b, - 0x322ac9, - 0x323d4b, - 0x32400b, - 0x3245cb, - 0x3256ca, - 0x325c0a, - 0x32620c, - 0x32a58b, - 0x32b18a, - 0x34240a, - 0x34ad8e, - 0x34bece, - 0x34c24a, - 0x34dd4a, - 0x34eb0b, - 0x34edcb, - 0x34fa4b, - 0x36bc8b, - 0x36c28a, - 0x36cf4b, - 0x36d20a, - 0x36d48a, - 0x36d70a, - 0x38d78b, - 0x392f8b, - 0x39588e, - 0x395c0b, - 0x39d24b, - 0x3a198b, - 0x3a51ca, - 0x3a5449, - 0x3a568a, - 0x3a764a, - 0x3bd9cb, - 0x3c9f4b, - 0x3ca7ca, - 0x3cdc0b, - 0x3d39cb, - 0x3db18b, - 0x44a854c8, - 0x44e8a6c9, - 0x452a0a89, - 0x456e7748, - 0x355405, - 0x2017c3, - 0x27fac4, - 0x2be185, - 0x236fc6, - 0x245805, - 0x289d84, - 0x367108, - 0x31c2c5, - 0x294c44, - 0x3c2887, - 0x2a000a, - 0x381e0a, - 0x303147, - 0x21a647, - 0x2e0947, - 0x27cfc7, - 0x35b445, - 0x211d46, - 0x39f487, - 0x360704, - 0x2b5186, - 0x2f1b86, - 0x3bf885, - 0x34a344, - 0x2999c6, - 0x29ecc7, - 0x238186, - 0x301747, - 0x228883, - 0x3d3c86, - 0x2ff6c5, - 0x284047, - 0x269e8a, - 0x232644, - 0x212508, - 0x312a09, - 0x2cd2c7, - 0x393846, - 0x255348, - 0x3b8f49, - 0x32af04, - 0x3a8c84, - 0x2d8045, - 0x2823c8, - 0x2ca0c7, - 0x2c4949, - 0x229a08, - 0x318dc6, - 0x2e6006, - 0x29ae08, - 0x370586, - 0x28a305, - 0x286c06, - 0x27aa48, - 0x3a8d06, - 0x23eacb, - 0x2b1046, - 0x29c80d, - 0x3bf405, - 0x2ab586, - 0x213205, - 0x349189, - 0x247e07, - 0x3badc8, - 0x3666c6, - 0x29b949, - 0x3cb146, - 0x269e05, - 0x2a2dc6, - 0x2704c6, - 0x2cf6c9, - 0x2bb246, - 0x29fd07, - 0x2a3445, - 0x21b203, - 0x223885, - 0x29cac7, - 0x3614c6, - 0x3bf309, - 0x27e706, - 0x286e46, - 0x211a09, - 0x286609, - 0x2a39c7, - 0x384748, - 0x29a209, - 0x284448, - 0x36bb06, - 0x2dcc45, - 0x31ef0a, - 0x286ec6, - 0x204c46, - 0x2d3e45, - 0x256488, - 0x357487, - 0x22f8ca, - 0x251a06, - 0x2f36c5, - 0x2ffd46, - 0x2d5607, - 0x393707, - 0x21b385, - 0x269fc5, - 0x2a95c6, - 0x2b6806, - 0x2d4686, - 0x2bfd04, - 0x285b89, - 0x28b846, - 0x2d03ca, - 0x225c88, - 0x3122c8, - 0x381e0a, - 0x223a45, - 0x29ec05, - 0x2311c8, - 0x2baf48, - 0x239f47, - 0x2b7dc6, - 0x33af48, - 0x218d07, - 0x2838c8, - 0x2b9bc6, - 0x287608, - 0x297986, - 0x27a647, - 0x36fe46, - 0x2999c6, - 0x281f8a, - 0x2da906, - 0x2dcc49, - 0x368146, - 0x371d8a, - 0x23dbc9, - 0x2f5206, - 0x2bba04, - 0x28dd4d, - 0x28a947, - 0x28e8c6, - 0x2c3705, - 0x3cb1c5, - 0x38ef06, - 0x2d2809, - 0x2eda47, - 0x27bfc6, - 0x2cbcc6, - 0x289e09, - 0x28a244, - 0x241304, - 0x201688, - 0x35fb86, - 0x2a2ec8, - 0x2fd948, - 0x3b9d47, - 0x3b8209, - 0x3b44c7, - 0x2b284a, - 0x2f630f, - 0x2ec3ca, - 0x310305, - 0x27ac85, - 0x2108c5, - 0x3b7807, - 0x23f643, - 0x384948, - 0x27d606, - 0x27d709, - 0x2eb646, - 0x2cf507, - 0x29b709, - 0x3bacc8, - 0x2d3f07, - 0x31fe43, - 0x355485, - 0x2d5145, - 0x2bfb4b, - 0x203a04, - 0x306384, - 0x278ec6, - 0x3204c7, - 0x39aeca, - 0x238007, - 0x209887, - 0x282b45, - 0x3c0645, - 0x292189, - 0x2999c6, - 0x237e8d, - 0x3632c5, - 0x2b5dc3, - 0x226783, - 0x21e685, - 0x35b0c5, - 0x255348, - 0x27cc87, - 0x241086, - 0x2a0706, - 0x2288c5, - 0x233a07, - 0x3b9847, - 0x238ec7, - 0x20d70a, - 0x3d3d48, - 0x2bfd04, - 0x280887, - 0x2805c7, - 0x34f046, - 0x297007, - 0x2c8608, - 0x304248, - 0x247d06, - 0x21a888, - 0x2bb2c4, - 0x39f486, - 0x2656c6, - 0x390946, - 0x201b06, - 0x21bb44, - 0x27d086, - 0x2c2346, - 0x299d86, - 0x20fd86, - 0x3c7586, - 0x244446, - 0x240f88, - 0x2b5008, - 0x2d9608, - 0x245a08, - 0x231146, - 0x20c245, - 0x223846, - 0x2aefc5, - 0x391647, - 0x229ac5, - 0x20c503, - 0x3c4785, - 0x22ccc4, - 0x3c76c5, - 0x2039c3, - 0x3a3547, - 0x3426c8, - 0x301806, - 0x36694d, - 0x27ac46, - 0x299345, - 0x218783, - 0x2bf209, - 0x28a3c6, - 0x295746, - 0x288904, - 0x2ec347, - 0x39fec6, - 0x2edd05, - 0x20fd43, - 0x3d1ac4, - 0x280786, - 0x211e44, - 0x2657c8, - 0x3bb109, - 0x306d89, - 0x2a2cca, - 0x29270d, - 0x2329c7, - 0x3c4bc6, - 0x20bc84, - 0x284c49, - 0x289388, - 0x28a546, - 0x235606, - 0x297007, - 0x2bc186, - 0x2266c6, - 0x336886, - 0x32f84a, - 0x213148, - 0x2a9e45, - 0x372a49, - 0x2ca84a, - 0x3029c8, - 0x29e408, - 0x2956c8, - 0x2a034c, - 0x34ff85, - 0x2a0988, - 0x2b7b46, - 0x344ec6, - 0x3a1c07, - 0x237f05, - 0x286d85, - 0x306c49, - 0x3dc3c7, - 0x27d6c5, - 0x228707, - 0x226783, - 0x2cad05, - 0x21ea48, - 0x285907, - 0x29e2c9, - 0x2dcb05, - 0x3b0b44, - 0x2a4248, - 0x301c87, - 0x2d40c8, - 0x3b5c08, - 0x2ac3c5, - 0x3b7bc6, - 0x248186, - 0x2d8409, - 0x2b1847, - 0x2af786, - 0x21e147, - 0x202183, - 0x237284, - 0x2d0a85, - 0x280b04, - 0x24ba44, - 0x25e7c7, - 0x268747, - 0x27c184, - 0x29e110, - 0x372c47, - 0x3c0645, - 0x3308cc, - 0x20f384, - 0x35d248, - 0x27a549, - 0x383dc6, - 0x2f40c8, - 0x246544, - 0x2791c8, - 0x302346, - 0x281e08, - 0x29cd86, - 0x39800b, - 0x32cd85, - 0x2d0908, - 0x211444, - 0x3bb54a, - 0x29e2c9, - 0x36fd46, - 0x319348, - 0x2a6105, - 0x2be9c4, - 0x35d146, - 0x238d88, - 0x2854c8, - 0x33b7c6, - 0x21fe04, - 0x31ee86, - 0x3b4547, - 0x27a0c7, - 0x29700f, + 0x41e9e485, + 0x42245a84, + 0x426d7fc7, + 0x42a31607, + 0x42e86046, + 0x43282bc5, + 0x43699c87, + 0x43adb108, + 0x43f2bac7, + 0x442b3489, + 0x446d4505, + 0x44b08a87, + 0x44e93f06, + 0x81b8b, + 0x45209d88, + 0x22034d, + 0x28bf09, + 0x2a8e4b, + 0x2ac48b, + 0x30f00b, + 0x30cb0b, + 0x31958b, + 0x31984b, + 0x319d89, + 0x31aecb, + 0x31b18b, + 0x31b70b, + 0x31ce0a, + 0x31d34a, + 0x31d94c, + 0x322b0b, + 0x3235ca, + 0x34340a, + 0x34cc8e, + 0x34d88e, + 0x34dc0a, + 0x34ffca, + 0x3509cb, + 0x350c8b, + 0x35190b, + 0x36ed0b, + 0x36f30a, + 0x36ffcb, + 0x37028a, + 0x37050a, + 0x37078a, + 0x3919cb, + 0x396f4b, + 0x39984e, + 0x399bcb, + 0x3a0a4b, + 0x3a19cb, + 0x3a540a, + 0x3a5689, + 0x3a58ca, + 0x3a75ca, + 0x3bf38b, + 0x3c93cb, + 0x3c9c8a, + 0x3ca78b, + 0x3d2f4b, + 0x3d9fcb, + 0x456849c8, + 0x45a8a2c9, + 0x45ea1c89, + 0x462e2608, + 0x357e45, + 0x209ec3, + 0x23d284, + 0x2c86c5, + 0x238386, + 0x23c305, + 0x289984, + 0x2b5688, + 0x312ec5, + 0x296184, + 0x3dc887, + 0x2a04ca, + 0x384bca, + 0x3cd2c7, + 0x218747, + 0x2decc7, + 0x27e007, + 0x35cf45, + 0x3cf6c6, + 0x33a747, + 0x32a7c4, + 0x2b6486, + 0x2ed886, + 0x3ce8c5, + 0x329d04, + 0x29b206, + 0x29f587, + 0x26c806, + 0x3daf07, + 0x27f503, + 0x3d3206, + 0x233105, + 0x283487, + 0x269c8a, + 0x233c84, + 0x218f88, + 0x346a89, + 0x2d2347, + 0x397806, + 0x36b848, + 0x203589, + 0x36aa44, + 0x35af84, + 0x2d5fc5, + 0x22af48, + 0x2c9ac7, + 0x2f7149, + 0x224d08, + 0x30e406, + 0x23d386, + 0x29bb48, + 0x373ac6, + 0x289f05, + 0x286106, + 0x27c1c8, + 0x280986, + 0x2405cb, + 0x366786, + 0x29d10d, + 0x3dc385, + 0x2acc46, + 0x202c45, + 0x367649, + 0x24c047, + 0x39cf08, + 0x292fc6, + 0x29c3c9, + 0x3bd346, + 0x269c05, + 0x2a2fc6, + 0x2bd946, + 0x2ce4c9, + 0x2bb546, + 0x2a01c7, + 0x2a3645, + 0x21a1c3, + 0x21a1c5, + 0x2ad647, + 0x32f846, + 0x3dc289, + 0x278c06, + 0x274886, + 0x3cf389, + 0x285b09, + 0x2a3bc7, + 0x3286c8, + 0x2a6249, + 0x283888, + 0x36eb86, + 0x2db485, + 0x31608a, + 0x274906, + 0x2096c6, + 0x2d2e45, + 0x253e48, + 0x2aa007, + 0x23190a, + 0x24f846, + 0x2f6245, + 0x2facc6, + 0x228987, + 0x3976c7, + 0x21b8c5, + 0x269dc5, + 0x2815c6, + 0x28e686, + 0x2a9cc6, + 0x2bf744, + 0x285089, + 0x28b146, + 0x2cf20a, + 0x21c588, + 0x308788, + 0x384bca, + 0x21b105, + 0x29f4c5, + 0x23b4c8, + 0x2bfc88, + 0x237187, + 0x2b7bc6, + 0x33cd48, + 0x20fec7, + 0x282d08, + 0x2b9e46, + 0x286e88, + 0x2991c6, + 0x27bdc7, + 0x2af486, + 0x29b206, + 0x26e40a, + 0x2d8b86, + 0x2db489, + 0x369786, + 0x2684ca, + 0x241f09, + 0x2ee686, + 0x2bbd04, + 0x35accd, + 0x28a547, + 0x32c386, + 0x2c3045, + 0x3bd3c5, + 0x393146, + 0x2d7e09, + 0x2ba7c7, + 0x27d386, + 0x2d0d06, + 0x289a09, + 0x289e44, + 0x242a84, + 0x327f08, + 0x265d46, + 0x2a30c8, + 0x2f7f88, + 0x32e307, + 0x3bb0c9, + 0x3b8c47, + 0x2b3d4a, + 0x2f028f, + 0x281e8a, + 0x28dfc5, + 0x27c405, + 0x2140c5, + 0x3ba6c7, + 0x228543, + 0x3288c8, + 0x25ce46, + 0x25cf49, + 0x2dbdc6, + 0x2ce307, + 0x29c189, + 0x39ce08, + 0x2d2f07, + 0x316fc3, + 0x357ec5, + 0x2284c5, + 0x2bf58b, + 0x201944, + 0x302084, + 0x27a646, + 0x317187, + 0x39e38a, + 0x232087, + 0x3a8647, + 0x282105, + 0x3c2845, + 0x2725c9, + 0x29b206, + 0x231f0d, + 0x363505, + 0x2b6e03, + 0x204943, + 0x21ef45, + 0x35cbc5, + 0x36b848, + 0x27dcc7, + 0x242806, + 0x2a1906, + 0x22b6c5, + 0x235147, 0x32de07, - 0x2f52c7, - 0x31ff85, - 0x374345, - 0x2a3689, - 0x2e8ac6, - 0x26b885, - 0x286907, - 0x3a1e88, - 0x2fca45, - 0x36fe46, - 0x225ac8, - 0x3b880a, - 0x238a88, - 0x28fa87, - 0x2f6746, - 0x372a06, - 0x2003c3, - 0x20ecc3, - 0x2caa09, - 0x29a089, - 0x35d046, - 0x2dcb05, - 0x21ab08, - 0x319348, - 0x370708, - 0x33690b, - 0x366b87, - 0x2fb749, - 0x297288, - 0x35e8c4, - 0x390588, - 0x291209, - 0x2afa85, - 0x3b7707, - 0x237305, - 0x2853c8, - 0x29374b, - 0x298190, - 0x2ab305, - 0x21138c, - 0x241245, - 0x282bc3, - 0x2b4446, - 0x2c1244, - 0x370106, - 0x29ecc7, - 0x225b44, - 0x241fc8, - 0x38480d, - 0x319205, - 0x232a04, - 0x2a2544, - 0x2a2549, - 0x2acbc8, - 0x32d247, - 0x3023c8, - 0x285c48, - 0x27c2c5, - 0x205987, - 0x27c247, - 0x2c6447, - 0x269fc9, - 0x3365c9, - 0x20b646, - 0x2bdbc6, - 0x2869c6, - 0x34d6c5, - 0x3a83c4, - 0x3ba3c6, - 0x3bf0c6, - 0x27c308, - 0x2d52cb, - 0x267287, - 0x20bc84, - 0x39fe06, - 0x2c8947, - 0x244045, - 0x244f45, - 0x2ae104, - 0x336546, - 0x3ba448, - 0x284c49, - 0x25f446, - 0x289188, - 0x2eddc6, - 0x35a6c8, - 0x2b340c, - 0x27c186, - 0x29900d, - 0x29948b, - 0x29fdc5, - 0x3b9987, - 0x2bb346, - 0x3935c8, - 0x20b6c9, - 0x3057c8, - 0x3c0645, - 0x360447, - 0x284548, - 0x2ff109, - 0x39fb46, - 0x25f34a, - 0x393348, - 0x30560b, - 0x2133cc, - 0x2792c8, - 0x27fd46, - 0x205388, - 0x3b8487, - 0x209509, - 0x3179cd, - 0x2998c6, - 0x23f608, - 0x2b4ec9, - 0x2bfe08, - 0x287708, - 0x2c2d8c, - 0x2c3e47, - 0x2c4f47, - 0x269e05, - 0x2b89c7, - 0x3a1d48, - 0x35d1c6, - 0x36b18c, - 0x2cb288, - 0x2d1f48, - 0x2ff406, - 0x2d4ec7, - 0x20b844, - 0x245a08, - 0x31e9cc, - 0x28b28c, - 0x310385, - 0x3bf907, - 0x21fd86, - 0x2d4e46, - 0x349348, - 0x21cfc4, - 0x23818b, - 0x27b20b, - 0x2f6746, - 0x384687, - 0x3ccdc5, - 0x271205, - 0x2382c6, - 0x2a60c5, - 0x2039c5, - 0x2cdd87, - 0x3bfcc9, - 0x2b69c4, - 0x25ca05, - 0x3ac2c5, - 0x3b7f88, - 0x28d3c5, - 0x26e249, - 0x375e47, - 0x375e4b, - 0x2f4f46, - 0x240cc9, - 0x34a288, - 0x288405, - 0x2c6548, - 0x336608, - 0x273547, - 0x302147, - 0x25e849, - 0x281d47, - 0x295309, - 0x334f0c, - 0x3cf448, - 0x2b84c9, - 0x2ba407, - 0x285d09, - 0x3617c7, - 0x2134c8, - 0x3b83c5, - 0x39f406, - 0x2c3748, - 0x2f6848, - 0x2ca709, - 0x203a07, - 0x271c05, - 0x256089, - 0x2d8746, - 0x292f04, - 0x31bd06, - 0x2e63c8, - 0x2ff8c7, - 0x2d54c8, - 0x21a949, - 0x3286c7, - 0x2a01c6, - 0x3b9a44, - 0x3c4809, - 0x205808, - 0x2ff2c7, - 0x237c86, - 0x2d5206, - 0x204bc4, - 0x36a2c6, - 0x23a303, - 0x32c909, - 0x32cd46, - 0x2ab805, - 0x2a0706, - 0x2cfa85, + 0x22a087, + 0x20878a, + 0x3d32c8, + 0x2bf744, + 0x280707, + 0x280447, + 0x350f06, + 0x298847, + 0x2d1348, + 0x2d3b88, + 0x24bf46, + 0x218988, + 0x2bb5c4, + 0x33a746, + 0x253a86, + 0x39d606, + 0x330946, + 0x21af84, + 0x27e0c6, + 0x2c1a86, + 0x29b5c6, + 0x231f06, + 0x204806, + 0x2457c6, + 0x242708, + 0x2b6308, + 0x2d72c8, + 0x23c508, + 0x23b446, + 0x20b3c5, + 0x21a186, + 0x2b0a05, + 0x395647, + 0x224dc5, + 0x20d443, + 0x3ceac5, + 0x22e384, + 0x204945, + 0x201903, + 0x3a3787, + 0x3436c8, + 0x3dafc6, + 0x2b4ecd, + 0x27c3c6, + 0x29ab85, + 0x21aac3, + 0x2bec49, + 0x289fc6, + 0x2969c6, + 0x282604, + 0x281e07, + 0x338446, + 0x2baa85, + 0x23c043, + 0x205b44, + 0x280606, + 0x3cf7c4, + 0x253b88, + 0x3d4a09, + 0x302a89, + 0x2a2eca, + 0x29370d, + 0x234007, + 0x3a8986, + 0x20adc4, + 0x284089, + 0x288c08, + 0x28a146, + 0x236d86, + 0x298847, + 0x2c1606, + 0x22d906, + 0x32ca06, + 0x32b7ca, + 0x220688, + 0x26ed05, + 0x36c209, + 0x2ca24a, + 0x2ffbc8, + 0x29ecc8, + 0x296948, + 0x2ad80c, + 0x351e45, + 0x2a1b88, + 0x2b7946, + 0x310e06, + 0x3a1c47, + 0x231f85, + 0x286285, + 0x302949, + 0x20d207, + 0x25cf05, + 0x238cc7, + 0x204943, + 0x2ca705, + 0x21a748, + 0x284e07, + 0x29eb89, + 0x2e2e05, + 0x3a6744, + 0x2a4448, + 0x3db447, + 0x2d30c8, + 0x3dd108, + 0x2adbc5, + 0x3baa86, + 0x24c3c6, + 0x2d6389, + 0x31c0c7, + 0x2b0e46, + 0x21ea07, + 0x202103, + 0x238644, + 0x2cf8c5, + 0x235284, + 0x2515c4, + 0x38c647, + 0x2675c7, + 0x27d544, + 0x29e9d0, + 0x36c407, + 0x3c2845, + 0x3303cc, + 0x206784, + 0x37f5c8, + 0x27bcc9, + 0x388d86, + 0x3134c8, + 0x23d044, + 0x27a948, + 0x3dbb06, + 0x26e288, + 0x29fb46, + 0x28ae8b, + 0x325045, + 0x2cf748, + 0x20f1c4, + 0x3d4e4a, + 0x29eb89, + 0x2af386, + 0x30e988, + 0x286685, + 0x2be1c4, + 0x37f4c6, + 0x229f48, 0x2849c8, - 0x368547, - 0x2ddcc6, - 0x32f206, - 0x3122c8, - 0x2a3807, - 0x299905, - 0x29df08, - 0x3ca348, - 0x393348, - 0x241105, - 0x39f486, - 0x306b49, - 0x2d8284, - 0x2cf90b, - 0x2263cb, - 0x2a9d49, - 0x226783, - 0x25aac5, - 0x301606, - 0x241c88, - 0x2b6cc4, - 0x301806, - 0x20d849, - 0x31e385, - 0x2cdcc6, - 0x301c86, - 0x210984, - 0x29e58a, - 0x2ab748, - 0x2f6846, - 0x243e85, - 0x3ccc47, - 0x35b307, - 0x3b7bc4, - 0x226607, - 0x229a84, - 0x229a86, - 0x205dc3, - 0x269fc5, - 0x2b0445, - 0x368788, - 0x280a45, - 0x27bec9, - 0x245847, - 0x24584b, - 0x2a554c, - 0x2a5b4a, - 0x317887, - 0x201303, - 0x26bd48, - 0x2412c5, - 0x2fcac5, - 0x355544, - 0x2133c6, - 0x27a546, - 0x36a307, - 0x25560b, - 0x21bb44, - 0x3008c4, - 0x2c9284, - 0x2cf386, - 0x225b44, - 0x2824c8, - 0x355345, - 0x21b205, - 0x370647, - 0x3b9a89, - 0x35b0c5, - 0x38ef0a, - 0x2a3349, - 0x2a82ca, - 0x32f989, - 0x338e44, - 0x2cbd85, - 0x2bc288, - 0x2d2a8b, - 0x2d8045, - 0x2fdac6, - 0x240844, - 0x27c406, - 0x328549, - 0x2c8a47, - 0x27e8c8, - 0x292a86, - 0x3b44c7, - 0x2854c8, - 0x38f486, - 0x3b9544, - 0x380c47, - 0x36e085, - 0x382447, - 0x245a84, - 0x2bb2c6, - 0x3026c8, - 0x299648, - 0x2fa2c7, - 0x3294c8, - 0x297a45, - 0x226504, - 0x381d08, - 0x3201c4, - 0x210845, - 0x3028c4, - 0x218e07, - 0x28b907, - 0x285e48, - 0x2d4246, - 0x2809c5, - 0x27bcc8, - 0x24bb48, - 0x2a2c09, - 0x2266c6, - 0x22f948, - 0x3bb3ca, - 0x2440c8, - 0x2ed185, - 0x215686, - 0x2a3208, - 0x36050a, - 0x357887, - 0x2897c5, - 0x293108, - 0x2dd904, - 0x256506, - 0x2c52c8, - 0x3c7586, - 0x30a648, - 0x2d6947, - 0x3c2786, - 0x2bba04, - 0x281487, - 0x2b5484, - 0x328507, - 0x36fa8d, - 0x239fc5, - 0x2d260b, - 0x28b506, - 0x2551c8, - 0x241f84, - 0x231346, - 0x280786, - 0x2056c7, - 0x298ccd, - 0x2fc607, - 0x2b5d08, - 0x284e05, - 0x36a448, - 0x2ca046, - 0x297ac8, - 0x39df06, - 0x330647, - 0x2861c9, - 0x36a9c7, - 0x28a808, - 0x275c45, - 0x228948, - 0x2d4d85, - 0x22a4c5, - 0x32fc05, - 0x251e03, - 0x201b84, - 0x244185, - 0x2496c9, - 0x36a0c6, - 0x2c8708, - 0x301f05, - 0x2b8887, - 0x344a4a, - 0x2cdc09, - 0x2703ca, - 0x2d9688, - 0x22854c, - 0x28698d, - 0x30d243, - 0x30a548, - 0x3d1a85, - 0x3b85c6, - 0x3bab46, - 0x359205, - 0x21e249, - 0x361605, - 0x27bcc8, - 0x2590c6, - 0x35dbc6, - 0x2a4109, - 0x3aae47, - 0x293a06, - 0x3449c8, - 0x390848, - 0x2e7947, - 0x2c24ce, - 0x2ca285, - 0x2ff005, - 0x3c7488, - 0x2e9a87, - 0x204c42, - 0x2c2904, - 0x37000a, - 0x2ff388, - 0x336746, - 0x29b848, - 0x248186, - 0x361108, - 0x2af788, - 0x22a484, - 0x2b8c45, - 0x731a84, - 0x731a84, - 0x731a84, - 0x2094c3, - 0x2d5086, - 0x27c186, - 0x29fa8c, - 0x20d8c3, - 0x246446, - 0x2133c4, - 0x28a348, - 0x20d685, - 0x370106, - 0x2bf948, - 0x2daf86, - 0x2ddc46, - 0x3a88c8, - 0x2d0b07, - 0x281b09, - 0x3114ca, - 0x20d6c4, - 0x229ac5, - 0x2c4905, - 0x2d65c6, - 0x232a06, - 0x29f406, - 0x3cef46, - 0x281c44, - 0x281c4b, - 0x229884, - 0x240e45, - 0x2ae605, - 0x3b9e06, - 0x3c2c08, - 0x286847, - 0x32ccc4, - 0x25dfc3, - 0x2dd405, - 0x31bbc7, - 0x28674b, - 0x368687, - 0x2bf848, - 0x2b8d87, - 0x26b246, - 0x27e488, - 0x25364b, - 0x2be0c6, - 0x20c249, - 0x2537c5, - 0x31fe43, - 0x2cdcc6, - 0x2d6848, - 0x20d2c3, - 0x2ad643, - 0x2854c6, - 0x248186, - 0x37654a, - 0x27fd85, - 0x2805cb, - 0x2a064b, - 0x244e03, - 0x202603, - 0x2b27c4, - 0x247f47, - 0x2792c4, - 0x28a344, - 0x2b79c4, - 0x2443c8, - 0x243dc8, - 0x20ec49, - 0x2d6408, - 0x32fe87, - 0x20fd86, - 0x2c834f, - 0x2ca3c6, - 0x2d8b84, - 0x243c0a, - 0x31bac7, - 0x2b5586, - 0x292f49, - 0x20ebc5, - 0x3688c5, - 0x20ed06, - 0x228a83, - 0x2dd949, - 0x2132c6, - 0x21a709, - 0x39aec6, - 0x269fc5, - 0x310785, - 0x201b83, - 0x248088, - 0x32d407, - 0x27d604, - 0x28a1c8, - 0x344c44, - 0x304b46, - 0x2b4446, - 0x23cb46, - 0x2d07c9, - 0x2fca45, - 0x2999c6, - 0x22fec9, - 0x2c8e86, - 0x244446, - 0x3a3946, - 0x22b5c5, - 0x3028c6, - 0x330644, - 0x3b83c5, - 0x2c3744, - 0x2b78c6, - 0x363284, - 0x203b03, - 0x289445, - 0x2346c8, - 0x2e4947, - 0x2b6d49, - 0x2896c8, - 0x29abd1, - 0x301d0a, - 0x2f6687, - 0x304586, - 0x2133c4, - 0x2c3848, - 0x3698c8, - 0x29ad8a, - 0x26e00d, - 0x2a2dc6, - 0x3a89c6, - 0x281546, - 0x21b207, - 0x2b5dc5, - 0x275187, - 0x28a285, - 0x375f84, - 0x2aa746, - 0x39f2c7, - 0x2dd64d, - 0x2a3147, - 0x367008, - 0x27bfc9, - 0x215586, - 0x39fac5, - 0x231a84, - 0x2e64c6, - 0x3b7ac6, - 0x2ff506, - 0x29c0c8, - 0x222e43, - 0x2056c3, - 0x37f685, - 0x251386, - 0x2af745, - 0x292c88, - 0x29ee8a, - 0x3b7cc4, - 0x28a348, - 0x2956c8, - 0x3b9c47, - 0x301fc9, - 0x2bf548, - 0x284cc7, - 0x2b7c46, - 0x3c758a, - 0x2e6548, - 0x30d849, - 0x2acc88, - 0x21ae09, - 0x304447, - 0x2f9505, - 0x336b06, - 0x35d048, - 0x3885c8, - 0x39ea08, - 0x210988, - 0x240e45, - 0x201484, - 0x233088, - 0x21f304, - 0x32f784, - 0x269fc5, - 0x294c87, - 0x3b9849, - 0x2054c7, - 0x211a85, - 0x2790c6, - 0x367dc6, - 0x20c384, - 0x2a4446, - 0x27f8c4, - 0x28c286, - 0x3b9606, - 0x20d106, - 0x3c0645, - 0x292b47, - 0x201303, - 0x272d49, - 0x3120c8, - 0x284b44, - 0x284b4d, - 0x299748, - 0x2efe48, - 0x30d7c6, - 0x2862c9, - 0x2cdc09, - 0x328245, - 0x29ef8a, - 0x26e88a, - 0x24e50c, - 0x24e686, - 0x2799c6, - 0x2cac46, - 0x26b6c9, - 0x3b8806, - 0x213546, - 0x3616c6, - 0x245a08, - 0x238a86, - 0x2d7b4b, - 0x294e05, - 0x21b205, - 0x27a1c5, - 0x201406, - 0x226543, - 0x23cac6, - 0x2a30c7, - 0x2c3705, - 0x25c345, - 0x3cb1c5, - 0x37a286, - 0x328304, - 0x337e86, - 0x2a4a09, - 0x20128c, - 0x375cc8, - 0x238d04, - 0x3025c6, - 0x28b606, - 0x2d6848, - 0x319348, - 0x201189, - 0x3ccc47, - 0x35f8c9, - 0x2712c6, - 0x22b984, - 0x208044, - 0x2842c4, - 0x2854c8, - 0x3b968a, - 0x35b046, - 0x369f87, - 0x3826c7, - 0x240dc5, - 0x2c48c4, - 0x2911c6, - 0x2b5e06, - 0x21d003, - 0x311f07, - 0x3b5b08, - 0x32838a, - 0x22b688, - 0x209388, - 0x3632c5, - 0x29fec5, - 0x267385, - 0x241186, - 0x38b006, - 0x398bc5, - 0x32cb49, - 0x2c46cc, - 0x267447, - 0x29ae08, - 0x2b1185, - 0x731a84, - 0x22c344, - 0x285a44, - 0x21a506, - 0x2a1e0e, - 0x368947, - 0x21b405, - 0x2d820c, - 0x30e047, - 0x39f247, - 0x235a09, - 0x2125c9, - 0x2897c5, - 0x3120c8, - 0x306b49, - 0x393205, - 0x2c3648, - 0x2b8706, - 0x381f86, - 0x23dbc4, - 0x290008, - 0x215743, - 0x378384, - 0x2dd485, - 0x394c07, - 0x2de485, - 0x3bb289, - 0x29608d, - 0x2adc06, - 0x3c2344, - 0x2b7d48, - 0x3bfb0a, - 0x224887, - 0x3cc385, - 0x280a03, - 0x2a080e, - 0x24818c, - 0x302ac7, - 0x2a1fc7, - 0x109d86, - 0x205643, - 0x3b8845, - 0x285a45, - 0x29bc08, - 0x2987c9, - 0x238c06, - 0x2792c4, - 0x2f65c6, - 0x23f3cb, - 0x2bd28c, - 0x251ec7, - 0x2d7e05, - 0x3ca248, - 0x2e7705, - 0x243c07, - 0x301b47, - 0x39e885, - 0x226543, - 0x2193c4, - 0x2e6285, - 0x2b68c5, - 0x2b68c6, - 0x29c608, - 0x39f2c7, - 0x3bae46, - 0x204ac6, - 0x32fb46, - 0x23f789, - 0x205a87, - 0x27f9c6, - 0x2bd406, - 0x2e1706, - 0x2ab685, - 0x20a7c6, - 0x377645, - 0x28d448, - 0x29458b, - 0x290f06, - 0x382704, - 0x2da549, - 0x245844, - 0x2b8688, - 0x31be07, - 0x287604, - 0x2bebc8, - 0x2c4d44, - 0x2ab6c4, - 0x28a105, - 0x319246, - 0x244307, - 0x2166c3, + 0x33d5c6, + 0x321104, + 0x316006, + 0x3b8cc7, + 0x27b847, + 0x29884f, + 0x329587, + 0x2ee747, + 0x31c305, + 0x377fc5, + 0x2a3889, + 0x2e6c46, + 0x38c885, + 0x285e07, + 0x3a1ec8, + 0x3cf845, + 0x2af486, + 0x21c3c8, + 0x202e4a, + 0x229c48, + 0x28f987, + 0x2f06c6, + 0x36c1c6, + 0x2003c3, + 0x2060c3, + 0x2ca409, + 0x2a60c9, + 0x2b3386, + 0x2e2e05, + 0x218c08, + 0x30e988, + 0x373c48, + 0x32ca8b, + 0x2b5107, + 0x314bc9, + 0x298ac8, + 0x35bb44, + 0x39d248, + 0x291489, + 0x2b1145, + 0x3ba5c7, + 0x2386c5, + 0x2848c8, + 0x29474b, + 0x2999d0, + 0x2ac885, + 0x20f10c, + 0x2429c5, + 0x282183, + 0x2ef046, + 0x2c0d04, + 0x2af746, + 0x29f587, + 0x21c444, + 0x243108, + 0x32878d, + 0x30e845, + 0x234044, + 0x294e44, + 0x294e49, + 0x2c4008, + 0x325507, + 0x3dbb88, + 0x285148, + 0x27d685, + 0x211907, + 0x27d607, + 0x2c59c7, + 0x269dc9, + 0x32d909, + 0x20bdc6, + 0x2c8106, + 0x285ec6, + 0x34d0c5, + 0x3adbc4, + 0x3bff46, + 0x3c19c6, + 0x27d6c8, + 0x22864b, + 0x2658c7, + 0x20adc4, + 0x338386, + 0x2d1687, + 0x2453c5, + 0x333385, + 0x227044, + 0x32d886, + 0x3bffc8, + 0x284089, + 0x247086, + 0x288a08, + 0x2bab46, + 0x35c1c8, + 0x2b8c0c, + 0x27d546, + 0x29a84d, + 0x29accb, 0x2a0285, - 0x2f4344, - 0x2ff046, - 0x3282c8, - 0x3293c5, - 0x294249, - 0x256285, - 0x246448, - 0x358447, - 0x32ce48, - 0x2be807, - 0x2f5389, - 0x27cf06, - 0x334ac6, - 0x29a344, - 0x300805, - 0x312f4c, - 0x27a1c7, - 0x27ab47, - 0x232648, - 0x2adc06, - 0x2a3004, - 0x37af04, - 0x25e6c9, - 0x2cad46, - 0x292207, - 0x205304, - 0x2a4546, - 0x348c85, - 0x2d3d87, - 0x2d7ac6, - 0x25f209, - 0x2e8cc7, - 0x297007, - 0x2a3f86, - 0x237bc5, - 0x283748, - 0x213148, - 0x20ff86, - 0x329405, - 0x2c5e86, - 0x203883, - 0x29ba89, - 0x29f18e, - 0x2be548, - 0x344d48, - 0x20fd8b, - 0x294486, - 0x327d84, - 0x286584, - 0x29f28a, - 0x211287, - 0x27fa85, - 0x20c249, - 0x2c2405, - 0x32f7c7, - 0x2310c4, - 0x291547, - 0x2fd848, - 0x2cd386, - 0x2bb449, - 0x2bf64a, - 0x211206, - 0x299286, - 0x2ae585, - 0x3961c5, - 0x38cc47, - 0x2479c8, - 0x348bc8, - 0x22a486, - 0x310805, - 0x23278e, - 0x2bfd04, - 0x20ff05, - 0x278a49, - 0x2e88c8, - 0x28f9c6, - 0x29da0c, - 0x29ea90, - 0x2a1a4f, - 0x2a3588, - 0x317887, - 0x3c0645, - 0x244185, - 0x244189, - 0x293309, - 0x31ef86, - 0x2d80c7, - 0x300705, - 0x239f49, - 0x34f0c6, - 0x3b864d, - 0x284189, - 0x28a344, - 0x2be2c8, - 0x233149, - 0x35b206, - 0x26bf45, - 0x334ac6, - 0x27e789, - 0x2063c8, - 0x20c245, - 0x290004, - 0x29dbcb, - 0x35b0c5, - 0x241d06, - 0x286cc6, - 0x206dc6, - 0x2a294b, - 0x294349, - 0x2096c5, - 0x391547, - 0x301c86, - 0x3a8ac6, - 0x2857c8, - 0x282649, - 0x366dcc, - 0x31b9c8, - 0x31b4c6, - 0x33b7c3, - 0x37cd86, - 0x2a2785, - 0x281188, - 0x310206, - 0x2d3fc8, - 0x238085, - 0x3882c5, - 0x358588, - 0x390707, - 0x3baa87, - 0x36a307, - 0x2f40c8, - 0x2d66c8, - 0x2d1886, - 0x2b7707, - 0x237147, - 0x2a264a, - 0x246603, - 0x201406, - 0x232705, - 0x244704, - 0x27bfc9, - 0x2f5304, - 0x2b9f84, - 0x29ce04, - 0x2a1fcb, - 0x32d347, - 0x2329c5, - 0x297748, - 0x2790c6, - 0x2790c8, - 0x27fcc6, - 0x28ff45, - 0x290205, - 0x291bc6, - 0x292548, - 0x292e88, - 0x27c186, - 0x29758f, - 0x29b550, - 0x3bf405, - 0x201303, - 0x22ba45, - 0x2fb688, - 0x293209, - 0x393348, - 0x2d7ec8, - 0x2506c8, - 0x32d407, - 0x278d89, - 0x2d41c8, - 0x2fcf84, - 0x29cc88, - 0x3b8049, - 0x2b81c7, - 0x29cc04, - 0x205588, - 0x29290a, - 0x2cc046, - 0x2a2dc6, - 0x226589, - 0x29ecc7, - 0x2d0648, - 0x20a408, - 0x205188, - 0x38a405, - 0x396f85, - 0x21b205, - 0x285a05, - 0x2b4d07, - 0x226545, - 0x2c3705, - 0x3c2646, - 0x393287, - 0x2d29c7, - 0x292c06, - 0x2d9bc5, - 0x241d06, - 0x26be05, - 0x2badc8, - 0x300684, - 0x2c8f06, - 0x348ac4, - 0x2be9c8, - 0x2c900a, - 0x27cc8c, - 0x255805, - 0x21b2c6, - 0x366f86, + 0x32df47, + 0x2bb646, + 0x397588, + 0x20be49, + 0x3b2508, + 0x3c2845, + 0x32a507, + 0x283988, + 0x232b49, + 0x3380c6, + 0x27f74a, + 0x397308, + 0x3b234b, + 0x22090c, + 0x27aa48, + 0x27fdc6, + 0x211308, + 0x202ac7, + 0x2092c9, + 0x30cf4d, + 0x29b106, + 0x239808, + 0x2b61c9, + 0x2bf848, + 0x286f88, + 0x2c24cc, + 0x2c3787, + 0x2c44c7, + 0x269c05, + 0x2b91c7, + 0x3a1d88, 0x37f546, - 0x2fb884, - 0x3693c5, - 0x27f607, - 0x29ed49, - 0x2cf7c7, - 0x731a84, - 0x731a84, - 0x32d1c5, - 0x2177c4, - 0x29d3ca, - 0x278f46, - 0x306944, - 0x3bf885, - 0x2b3945, - 0x2b5d04, - 0x286907, - 0x256207, - 0x2cf388, - 0x2c5f88, - 0x3c8009, - 0x3201c8, - 0x29d58b, - 0x2442c4, - 0x3a8bc5, - 0x26b905, - 0x36a289, - 0x282649, - 0x2da448, - 0x229888, - 0x2dea44, - 0x28b645, - 0x2017c3, - 0x2d6585, - 0x299a46, - 0x29860c, - 0x2131c6, - 0x26be46, - 0x28fc45, - 0x37a308, - 0x3194c6, - 0x304706, - 0x2a2dc6, - 0x22b40c, - 0x26b9c4, - 0x32fc8a, - 0x28fb88, - 0x298447, - 0x2f4246, - 0x238cc7, - 0x2f61c5, - 0x237c86, - 0x365e46, - 0x374207, - 0x2bf344, - 0x218f05, - 0x278a44, - 0x376007, - 0x278c88, - 0x27984a, - 0x2843c7, - 0x2ab8c7, - 0x317807, - 0x2e7849, - 0x29860a, - 0x20ff83, - 0x2e4905, - 0x20d143, - 0x2b7a09, - 0x2d6a88, - 0x31ff87, - 0x393449, - 0x213246, - 0x32df48, - 0x3a34c5, - 0x24bc4a, - 0x384ac9, - 0x247bc9, - 0x3a1c07, - 0x3699c9, - 0x20d008, - 0x361306, - 0x21b488, - 0x3c1c47, - 0x281d47, + 0x246f0c, + 0x2f4408, + 0x2d0648, + 0x232e46, + 0x228247, + 0x20bfc4, + 0x23c508, + 0x315b4c, + 0x28844c, + 0x28e045, + 0x3ce947, + 0x321086, + 0x2281c6, + 0x367808, + 0x21d004, + 0x26c80b, + 0x27c98b, + 0x2f06c6, + 0x328607, + 0x331e05, + 0x273d05, + 0x26c946, + 0x286645, + 0x201905, + 0x2ccac7, + 0x3c6349, + 0x28e844, + 0x25b245, + 0x30b645, + 0x3bae48, + 0x28d605, + 0x2a0ec9, + 0x2e8247, + 0x2e824b, + 0x2ee3c6, + 0x242449, + 0x329c48, + 0x2919c5, + 0x2c5ac8, + 0x32d948, + 0x264587, + 0x3db907, + 0x38c6c9, + 0x26e1c7, + 0x29cec9, + 0x308fcc, + 0x2b3388, + 0x2bb089, + 0x2bc447, + 0x285209, + 0x23bec7, + 0x220a08, + 0x202a05, + 0x33a6c6, + 0x2c3088, + 0x2f07c8, + 0x2ca109, + 0x201947, + 0x274705, + 0x248809, + 0x2d66c6, + 0x293f04, + 0x35f406, + 0x26cfc8, + 0x2fa847, + 0x228848, + 0x218a49, + 0x32b087, + 0x2a0686, + 0x32e004, + 0x3ceb49, + 0x211788, + 0x232d07, + 0x22e7c6, + 0x228586, + 0x209644, + 0x36d946, + 0x2048c3, + 0x324bc9, + 0x325006, + 0x2acec5, + 0x2a1906, + 0x2ce885, + 0x283e08, + 0x369b87, + 0x2feac6, + 0x32c8c6, + 0x308788, + 0x2a3a07, + 0x29b145, + 0x29e7c8, + 0x3c97c8, + 0x397308, + 0x242885, + 0x33a746, + 0x302849, + 0x2d6204, + 0x2ce70b, + 0x22d60b, + 0x26ec09, + 0x204943, + 0x258c45, + 0x23d606, + 0x242dc8, + 0x2aae04, + 0x3dafc6, + 0x2088c9, + 0x2d0445, + 0x2cca06, + 0x3db446, + 0x214184, + 0x29ee4a, + 0x2ace08, + 0x2f07c6, + 0x245205, + 0x328487, + 0x35ce07, + 0x3baa84, + 0x22d847, + 0x224d84, + 0x224d86, + 0x210143, + 0x269dc5, + 0x2b1b05, + 0x369dc8, + 0x2808c5, + 0x27d289, + 0x23c347, + 0x23c34b, + 0x2a4f4c, + 0x2a554a, + 0x30ce07, + 0x202e03, + 0x38cd48, + 0x242a45, + 0x3cf8c5, + 0x357f84, + 0x220906, + 0x27bcc6, + 0x36d987, + 0x247d8b, + 0x21af84, + 0x2fd104, + 0x2b52c4, + 0x2ce186, + 0x21c444, + 0x22b048, + 0x357d85, + 0x21b745, + 0x373b87, + 0x32e049, + 0x35cbc5, + 0x39314a, + 0x2a3549, + 0x2afb0a, + 0x32b909, + 0x350204, + 0x2d0dc5, + 0x2c1708, + 0x2d808b, + 0x2d5fc5, + 0x2f8106, + 0x241b04, + 0x27d7c6, + 0x32af09, + 0x2d1787, + 0x278dc8, + 0x293a86, + 0x3b8c47, + 0x2849c8, + 0x3936c6, + 0x3c1c04, + 0x383507, + 0x371cc5, + 0x385207, + 0x23c584, + 0x2bb5c6, + 0x2ff8c8, + 0x29ae88, + 0x2f1d87, + 0x320dc8, + 0x299285, + 0x204784, + 0x384ac8, + 0x31c544, + 0x214045, + 0x2ffac4, + 0x20ffc7, + 0x28b207, + 0x285348, + 0x2d3246, + 0x280845, + 0x27d088, + 0x2516c8, + 0x2a2e09, + 0x22d906, + 0x231988, + 0x3d4cca, + 0x245448, + 0x2e7805, + 0x21a386, + 0x2a3408, + 0x32a5ca, + 0x2aaa07, + 0x289045, + 0x294108, + 0x3d2484, + 0x253ec6, + 0x2c4848, + 0x204806, + 0x3ca308, + 0x358587, + 0x3dc786, + 0x2bbd04, + 0x26c187, + 0x2b6784, + 0x32aec7, + 0x2af0cd, + 0x237205, + 0x2d7c0b, + 0x2886c6, + 0x253288, + 0x2430c4, + 0x23b646, + 0x280606, + 0x211647, + 0x29a50d, + 0x2f6a87, + 0x2b6d48, + 0x284245, + 0x37b488, + 0x2c9a46, + 0x299308, + 0x360146, + 0x330147, + 0x2856c9, + 0x35fac7, + 0x28a408, + 0x276cc5, + 0x22b748, + 0x228105, + 0x225d05, + 0x34b085, + 0x24f543, + 0x286184, + 0x245505, + 0x247a89, + 0x36d746, + 0x2d1448, + 0x3db6c5, + 0x2b9087, + 0x31098a, + 0x2cc949, + 0x2bd84a, + 0x2d7348, + 0x238b0c, + 0x285e8d, + 0x3cc203, + 0x3ca208, + 0x205b05, + 0x202c06, + 0x39cc86, + 0x35a985, + 0x21eb09, + 0x36b3c5, + 0x27d088, + 0x2574c6, + 0x35e9c6, + 0x2a4309, + 0x3ab3c7, + 0x294a06, + 0x310908, + 0x39d508, + 0x2e2807, + 0x2c1c0e, + 0x2c9c85, + 0x232a45, + 0x204708, + 0x2e42c7, + 0x200e42, + 0x2c2044, + 0x2af64a, + 0x232dc8, + 0x32da86, + 0x29c2c8, + 0x24c3c6, + 0x32f488, + 0x2b0e48, + 0x225cc4, + 0x2b9445, + 0x727544, + 0x727544, + 0x727544, + 0x208343, + 0x228406, + 0x27d546, + 0x29ff4c, + 0x204743, + 0x23cf46, + 0x21c4c4, + 0x289f48, + 0x208705, + 0x2af746, + 0x2bf388, + 0x2d9206, + 0x2fea46, + 0x3ae0c8, + 0x2cf947, + 0x26df89, + 0x31a70a, + 0x208744, + 0x224dc5, + 0x23d345, + 0x358206, + 0x234046, + 0x2a0a86, + 0x3cce06, + 0x26e0c4, + 0x26e0cb, + 0x224b84, + 0x2425c5, + 0x2affc5, + 0x32e3c6, + 0x204c88, + 0x285d47, + 0x324f84, + 0x25c6c3, + 0x3d1f85, + 0x35f2c7, + 0x285c4b, + 0x369cc7, + 0x2bf288, + 0x2b9587, + 0x26b786, + 0x28c1c8, + 0x272b0b, + 0x2c8606, + 0x20df49, + 0x272c85, + 0x316fc3, + 0x2cca06, + 0x358488, + 0x213603, + 0x28c7c3, + 0x209e86, + 0x24c3c6, + 0x379a8a, + 0x27fe05, + 0x28044b, + 0x2a184b, + 0x246183, + 0x20a043, + 0x2b3cc4, + 0x24c187, + 0x27aa44, + 0x289f44, + 0x2b77c4, + 0x245748, + 0x245148, + 0x206049, + 0x2d4588, + 0x2686c7, + 0x231f06, + 0x2d108f, + 0x2c9dc6, + 0x2d6b04, + 0x244f8a, + 0x35f1c7, + 0x2b6886, + 0x293f49, + 0x205fc5, + 0x369f05, + 0x206106, + 0x22b883, + 0x3d24c9, + 0x220806, + 0x218809, + 0x39e386, + 0x269dc5, + 0x28e445, + 0x20a703, + 0x24c2c8, + 0x3256c7, + 0x25ce44, + 0x289dc8, + 0x310b84, + 0x300f46, + 0x2ef046, + 0x23ebc6, + 0x2cf609, + 0x3cf845, + 0x29b206, + 0x2a1509, + 0x2c8886, + 0x2457c6, + 0x3a3b86, + 0x203685, + 0x2ffac6, + 0x330144, + 0x202a05, + 0x2c3084, + 0x2b76c6, + 0x3634c4, + 0x201a43, + 0x288cc5, + 0x235e48, + 0x22cdc7, + 0x2aae89, + 0x288f48, + 0x29b911, + 0x3db4ca, + 0x2f0607, + 0x2d3ec6, + 0x21c4c4, + 0x2c3188, + 0x3cf988, + 0x29baca, + 0x2a0c8d, + 0x2a2fc6, + 0x3ae1c6, + 0x26c246, + 0x21b747, + 0x2b6e05, + 0x3be587, + 0x289e85, + 0x2e8384, + 0x2adec6, + 0x33a587, + 0x3d21cd, 0x2a3347, - 0x2d3208, - 0x3d02c6, - 0x2926c5, - 0x27f607, - 0x298d88, - 0x348a44, - 0x2d0284, - 0x293907, - 0x2afb07, - 0x3069ca, - 0x361286, - 0x3696ca, - 0x2c2847, - 0x2bfac7, - 0x218fc4, - 0x2953c4, - 0x2d3c86, - 0x3a0144, - 0x3a014c, - 0x306885, - 0x2107c9, - 0x2465c4, - 0x2b5dc5, - 0x3bfa88, - 0x28ea85, - 0x38ef06, - 0x293444, - 0x2a6c8a, - 0x2b1746, - 0x23ed0a, - 0x28e007, - 0x2d5605, - 0x228a85, - 0x240e0a, - 0x39e945, - 0x244146, - 0x21f304, - 0x2b2946, - 0x38cd05, - 0x3102c6, - 0x2fa2cc, - 0x2db94a, - 0x26e984, - 0x20fd86, - 0x29ecc7, - 0x2d7a44, - 0x245a08, - 0x2e37c6, - 0x382549, - 0x2c1b89, - 0x3cf549, - 0x2cfac6, - 0x3c1d46, - 0x21b5c7, - 0x32ca88, - 0x3c1b49, - 0x32d347, - 0x2978c6, - 0x3b4547, - 0x281405, - 0x2bfd04, - 0x21b187, - 0x237305, - 0x28a045, - 0x2f9e47, - 0x39e748, - 0x3ca1c6, - 0x299bcd, - 0x29be0f, - 0x2a064d, - 0x20d884, - 0x2347c6, - 0x2dbd08, - 0x361685, - 0x2a2808, - 0x27340a, - 0x28a344, - 0x2f1c86, - 0x2d8c07, - 0x21bb47, - 0x2d0bc9, - 0x21b445, - 0x2b5d04, - 0x2b8b8a, - 0x2bf109, - 0x369ac7, - 0x299e86, - 0x35b206, - 0x28b586, - 0x380d06, - 0x2db60f, - 0x2dbbc9, - 0x238a86, - 0x388206, - 0x32c149, - 0x2b7807, - 0x21a003, - 0x22b586, - 0x20ecc3, - 0x3590c8, - 0x2d4747, - 0x2a3789, - 0x2b42c8, - 0x3babc8, - 0x361906, - 0x30c049, - 0x37c885, - 0x2b78c4, - 0x2f95c7, - 0x26b745, - 0x20d884, - 0x232a88, - 0x211544, - 0x2b7547, - 0x342646, - 0x2a9685, - 0x2acc88, - 0x35b0cb, - 0x3125c7, - 0x241086, - 0x2ca444, - 0x327d06, - 0x269fc5, - 0x237305, - 0x2834c9, - 0x286509, - 0x281d84, - 0x281dc5, - 0x20fdc5, - 0x24bac6, - 0x3121c8, - 0x2c1646, - 0x3b594b, - 0x383c4a, - 0x2be905, - 0x290286, - 0x27d305, - 0x3c2585, - 0x295847, - 0x201688, - 0x2925c4, - 0x265cc6, - 0x292f06, - 0x20d1c7, - 0x31fe04, - 0x280786, - 0x3b7905, - 0x3b7909, - 0x2dc984, - 0x2c4a49, - 0x27c186, - 0x2c3f08, - 0x20fdc5, - 0x3827c5, - 0x3102c6, - 0x366cc9, - 0x2125c9, - 0x26bec6, - 0x2e89c8, - 0x2961c8, - 0x27d2c4, - 0x2b99c4, - 0x2b99c8, - 0x28e9c8, - 0x35f9c9, - 0x2999c6, - 0x2a2dc6, - 0x33ae0d, - 0x301806, - 0x2b32c9, - 0x223945, - 0x20ed06, - 0x206548, - 0x337dc5, - 0x237184, - 0x269fc5, - 0x286048, - 0x29d189, - 0x278b04, + 0x2b5588, + 0x27d389, + 0x21a286, + 0x338045, + 0x230344, + 0x26d0c6, + 0x3ba986, + 0x232f46, + 0x29cb48, + 0x219783, + 0x209e43, + 0x320405, + 0x35b006, + 0x2b0e05, + 0x293c88, + 0x29f74a, + 0x3bab84, + 0x289f48, + 0x296948, + 0x32e207, + 0x3db789, + 0x2bef88, + 0x284107, + 0x2b7a46, + 0x20480a, + 0x26d148, + 0x390e89, + 0x2c40c8, + 0x226c49, + 0x2d3d87, + 0x2f3bc5, + 0x32cc86, + 0x37f3c8, + 0x253408, + 0x339cc8, + 0x214188, + 0x2425c5, + 0x200d04, + 0x2347c8, + 0x241884, + 0x32b704, + 0x269dc5, + 0x2961c7, + 0x32de09, + 0x211447, + 0x2319c5, + 0x27a846, + 0x369406, + 0x202fc4, + 0x2a4646, + 0x27f244, + 0x292b46, + 0x32dbc6, + 0x213446, + 0x3c2845, + 0x293b47, + 0x202e03, + 0x269889, + 0x308588, + 0x283f84, + 0x283f8d, + 0x29af88, + 0x2ec008, + 0x390e06, + 0x2857c9, + 0x2cc949, + 0x32ac05, + 0x29f84a, + 0x25364a, + 0x27108c, + 0x271206, + 0x27b146, + 0x2ca646, + 0x39eec9, + 0x202e46, + 0x220a86, + 0x36b486, + 0x23c508, + 0x229c46, + 0x2d5acb, + 0x296345, + 0x21b745, + 0x27b945, + 0x327c86, + 0x2047c3, + 0x23eb46, + 0x2a32c7, + 0x2c3045, + 0x25ab85, + 0x3bd3c5, + 0x312906, + 0x32acc4, + 0x336306, + 0x2abc89, + 0x327b0c, + 0x2e80c8, + 0x229ec4, + 0x2ff7c6, + 0x2887c6, + 0x358488, + 0x30e988, + 0x327a09, + 0x328487, + 0x265a89, + 0x273dc6, + 0x22c644, + 0x205584, + 0x283704, + 0x2849c8, + 0x32dc4a, + 0x35cb46, + 0x36d607, + 0x385487, + 0x242545, + 0x2f70c4, + 0x291446, + 0x2b6e46, + 0x202a83, + 0x3083c7, + 0x3dd008, + 0x32ad4a, + 0x23d9c8, + 0x209148, + 0x363505, + 0x2a0385, + 0x2659c5, + 0x242906, + 0x390046, + 0x37b985, + 0x324e09, + 0x2f6ecc, + 0x380907, + 0x29bb48, + 0x296685, + 0x727544, + 0x2270c4, + 0x284f44, + 0x218606, + 0x2a268e, + 0x369f87, + 0x21b945, + 0x2d618c, + 0x3cb3c7, + 0x33a507, + 0x358fc9, + 0x219049, + 0x289045, + 0x308588, + 0x302849, + 0x3971c5, + 0x2c2f88, 0x2bb2c6, - 0x30da0a, - 0x3029c8, - 0x306b49, - 0x26a8ca, - 0x3933c6, - 0x29bfc8, - 0x2439c5, - 0x29f608, - 0x2f6245, - 0x213109, - 0x33d7c9, - 0x219482, - 0x2537c5, - 0x270f46, - 0x27c0c7, - 0x244705, - 0x2f35c6, - 0x316b48, - 0x2adc06, - 0x2bc149, - 0x27ac46, - 0x285648, - 0x26c285, - 0x34b8c6, - 0x330748, - 0x2854c8, - 0x304348, - 0x318e48, - 0x20a7c4, - 0x250c83, - 0x2bc384, - 0x2845c6, - 0x281444, - 0x344c87, - 0x304609, - 0x2c9285, - 0x20a406, - 0x22b586, - 0x29c44b, - 0x2b54c6, - 0x363506, - 0x2cda88, - 0x2e6006, - 0x26e303, - 0x3da583, - 0x2bfd04, - 0x22f845, - 0x2edc07, - 0x278c88, - 0x278c8f, - 0x27f50b, - 0x311fc8, - 0x2bb346, - 0x3122ce, - 0x241243, - 0x2edb84, - 0x2b5445, - 0x2b5b86, - 0x2912cb, - 0x294d46, - 0x225b49, - 0x2a9685, - 0x253dc8, - 0x3c7cc8, - 0x21248c, - 0x2a2006, - 0x2d65c6, - 0x2dcb05, - 0x28a5c8, - 0x27cc85, - 0x35e8c8, - 0x29dd8a, - 0x2a0a89, - 0x731a84, + 0x384d46, + 0x241f04, + 0x290108, + 0x21a443, + 0x387344, + 0x3d2005, + 0x398bc7, + 0x22c405, + 0x3d4b89, + 0x2a4c0d, + 0x371086, + 0x3b9904, + 0x2b7b48, + 0x3c618a, + 0x221e07, + 0x326945, + 0x280883, + 0x2a1a0e, + 0x24c3cc, + 0x2ffcc7, + 0x2a2847, + 0x40b06207, + 0x1282c6, + 0x81b84, + 0x202e83, + 0x202e85, + 0x284f45, + 0x29c688, + 0x29a009, + 0x229dc6, + 0x27aa44, + 0x2f0546, + 0x2395cb, + 0x2c77cc, + 0x24f607, + 0x2d5d85, + 0x3c96c8, + 0x2e25c5, + 0x244f87, + 0x3db307, + 0x339b45, + 0x2047c3, + 0x210584, + 0x23d245, + 0x28e745, + 0x28e746, + 0x2a8a48, + 0x33a587, + 0x39cf86, + 0x209546, + 0x34afc6, + 0x239989, + 0x211a07, + 0x27f346, + 0x2c7946, + 0x3a9606, + 0x2acd45, + 0x208bc6, + 0x386605, + 0x28d688, + 0x295b4b, + 0x290cc6, + 0x3854c4, + 0x2d87c9, + 0x23c344, + 0x2bb248, + 0x35f507, + 0x286e84, + 0x2be3c8, + 0x2c42c4, + 0x2acd84, + 0x289d05, + 0x30e886, + 0x245687, + 0x2172c3, + 0x2a0745, + 0x273304, + 0x232a86, + 0x32ac88, + 0x320cc5, + 0x295809, + 0x248a05, + 0x23cf48, + 0x3d28c7, + 0x325108, + 0x2be007, + 0x2ee809, + 0x27df46, + 0x370c46, + 0x2a6384, + 0x2fd045, + 0x30724c, + 0x27b947, + 0x27c2c7, + 0x233c88, + 0x371086, + 0x2a3204, + 0x3415c4, + 0x38c549, + 0x2ca746, + 0x272647, + 0x211284, + 0x2a4746, + 0x37adc5, + 0x2d2d87, + 0x2d5a46, + 0x27f609, + 0x2e6e47, + 0x298847, + 0x2a4186, + 0x22e705, + 0x282b88, + 0x220688, + 0x2dccc6, + 0x320d05, + 0x2c5406, + 0x2017c3, + 0x29c509, + 0x2a080e, + 0x2bdd48, + 0x310c88, + 0x2dcacb, + 0x295a46, + 0x326404, + 0x285a84, + 0x2a090a, + 0x20f007, + 0x27f405, + 0x20df49, + 0x2c1b45, + 0x32b747, + 0x2329c4, + 0x297307, + 0x2f7e88, + 0x2d2406, + 0x2bb749, + 0x2bf08a, + 0x20ef86, + 0x29aac6, + 0x2aff45, + 0x39a185, + 0x31fa87, + 0x246d08, + 0x37ad08, + 0x225cc6, + 0x28e4c5, + 0x233dce, + 0x2bf744, + 0x29c605, + 0x27a1c9, + 0x2e6a48, + 0x28f8c6, + 0x29e2cc, + 0x29f350, + 0x2a22cf, + 0x2a3788, + 0x30ce07, + 0x3c2845, + 0x245505, + 0x245509, + 0x294309, + 0x316106, + 0x2d6047, + 0x2fcf45, + 0x237189, + 0x350f86, + 0x202c8d, + 0x2835c9, + 0x289f44, + 0x2bdac8, + 0x234889, + 0x35cd06, + 0x38cf45, + 0x370c46, + 0x278c89, + 0x212348, + 0x20b3c5, + 0x290104, + 0x29e48b, + 0x35cbc5, + 0x242e46, + 0x2861c6, + 0x32eb86, + 0x29524b, + 0x295909, + 0x209485, + 0x395547, + 0x3db446, + 0x3ae2c6, + 0x284cc8, + 0x22b1c9, + 0x2b534c, + 0x35f0c8, + 0x3118c6, + 0x33d5c3, + 0x2ff4c6, + 0x295085, + 0x281348, + 0x28dec6, + 0x2d2fc8, + 0x232105, + 0x29bc85, + 0x3d2a08, + 0x39d3c7, + 0x39cbc7, + 0x36d987, + 0x3134c8, + 0x358308, + 0x2d1bc6, + 0x2b7507, + 0x238507, + 0x294f4a, + 0x2292c3, + 0x327c86, + 0x22a005, + 0x245a84, + 0x27d389, + 0x2ee784, + 0x203c44, + 0x29fbc4, + 0x2a284b, + 0x325607, + 0x234005, + 0x298f88, + 0x27a846, + 0x27a848, + 0x27fd46, + 0x290045, + 0x290305, + 0x2920c6, + 0x293548, + 0x293e88, + 0x27d546, + 0x298dcf, + 0x29bfd0, + 0x3dc385, + 0x202e03, + 0x22c705, + 0x314b08, + 0x294209, + 0x397308, + 0x2d5e48, + 0x23aac8, + 0x3256c7, + 0x27a509, + 0x2d31c8, + 0x291204, + 0x29fa48, + 0x3baf09, + 0x2b87c7, + 0x2ad784, + 0x211508, + 0x29390a, + 0x2ddc86, + 0x2a2fc6, + 0x22d7c9, + 0x29f587, + 0x2cf488, + 0x2e21c8, + 0x209c08, + 0x249085, + 0x39af85, + 0x21b745, + 0x284f05, + 0x2b6007, + 0x2047c5, + 0x2c3045, + 0x2389c6, + 0x397247, + 0x2d7fc7, + 0x293c06, + 0x2d7885, + 0x242e46, + 0x2b9605, + 0x2bfb08, + 0x2fcec4, + 0x2c8906, + 0x323484, + 0x2be1c8, + 0x2c8a0a, + 0x27dccc, + 0x247f85, + 0x21b806, + 0x2b5506, + 0x3202c6, + 0x311944, + 0x39ca85, + 0x27ef87, + 0x29f609, + 0x2ce5c7, + 0x727544, + 0x727544, + 0x325485, + 0x216144, + 0x29dc8a, + 0x27a6c6, + 0x302644, + 0x3ce8c5, + 0x2b5a05, + 0x2b6d44, + 0x285e07, + 0x248987, + 0x2ce188, + 0x2c5508, + 0x20b3c9, + 0x31c548, + 0x29de4b, + 0x245644, + 0x3ae3c5, + 0x38c905, + 0x36d909, + 0x22b1c9, + 0x2d86c8, + 0x224b88, + 0x2dd504, + 0x288805, + 0x209ec3, + 0x3581c5, + 0x29b286, + 0x299e4c, + 0x211186, + 0x38ce46, + 0x28fb45, + 0x312988, + 0x30eb06, + 0x2d4046, + 0x2a2fc6, + 0x23d74c, + 0x38c9c4, + 0x34b10a, + 0x28fa88, + 0x299c87, + 0x273206, + 0x229e87, + 0x2f0145, + 0x22e7c6, + 0x366086, + 0x377e87, + 0x22ce84, + 0x2100c5, + 0x27a1c4, + 0x2e8407, + 0x27a408, + 0x27afca, + 0x283807, + 0x2ac947, + 0x30cd87, + 0x2e2709, + 0x299e4a, + 0x22c603, + 0x22cd85, + 0x213483, + 0x2b7809, + 0x3586c8, + 0x31c307, + 0x397409, + 0x220786, + 0x3296c8, + 0x3a3705, + 0x2517ca, + 0x328a49, + 0x24be09, + 0x3a1c47, + 0x3cfa89, + 0x213348, + 0x32f686, + 0x21b9c8, + 0x3c3e47, + 0x26e1c7, + 0x2a3547, + 0x2db108, + 0x2ff646, + 0x2936c5, + 0x27ef87, + 0x29a5c8, + 0x34af44, + 0x2cf0c4, + 0x294907, + 0x2b11c7, + 0x3026ca, + 0x32f606, + 0x37b28a, + 0x2c1f87, + 0x2bf507, + 0x210184, + 0x29cf84, + 0x2d2c86, + 0x3386c4, + 0x3386cc, + 0x302585, + 0x213fc9, + 0x23d0c4, + 0x2b6e05, + 0x3c6108, + 0x293f45, + 0x393146, + 0x294444, + 0x2ae3ca, + 0x31bfc6, + 0x24080a, + 0x32bac7, + 0x228985, + 0x22b885, + 0x24258a, + 0x339c05, + 0x2454c6, + 0x241884, + 0x2b3e46, + 0x31fb45, + 0x28df86, + 0x2f1d8c, + 0x2d9bca, + 0x253744, + 0x231f06, + 0x29f587, + 0x2d59c4, + 0x23c508, + 0x2e5046, + 0x385309, + 0x2cbc49, + 0x2b3489, + 0x2ce8c6, + 0x3c3f46, + 0x21bb07, + 0x324d48, + 0x3c3d49, + 0x325607, + 0x299106, + 0x3b8cc7, + 0x26c105, + 0x2bf744, + 0x21b6c7, + 0x2386c5, + 0x289c45, + 0x200cc7, + 0x339a08, + 0x3c9646, + 0x29b40d, + 0x29c88f, + 0x2a184d, + 0x208904, + 0x235f46, + 0x2d9f88, + 0x36b445, + 0x295108, + 0x26444a, + 0x289f44, + 0x2ed986, + 0x2d6b87, + 0x21af87, + 0x2cfa09, + 0x21b985, + 0x2b6d44, + 0x2b938a, + 0x2beb49, + 0x3cfb87, + 0x2eecc6, + 0x35cd06, + 0x288746, + 0x3835c6, + 0x2d988f, + 0x2d9e49, + 0x229c46, + 0x38c186, + 0x324409, + 0x2b7607, + 0x222b43, + 0x23d8c6, + 0x2060c3, + 0x35a848, + 0x2a9d87, + 0x2a3989, + 0x2eeec8, + 0x39cd08, + 0x23c006, + 0x2110c9, + 0x380845, + 0x273204, + 0x2f3c87, + 0x39ef45, + 0x208904, + 0x2340c8, + 0x20f2c4, + 0x2b7347, + 0x343646, + 0x281685, + 0x2c40c8, + 0x35cbcb, + 0x308a87, + 0x242806, + 0x2c9e44, + 0x326386, + 0x269dc5, + 0x2386c5, + 0x282909, + 0x285a09, + 0x26e204, + 0x26e245, + 0x231f45, + 0x251646, + 0x308688, + 0x2c1086, + 0x3dce4b, + 0x388c0a, + 0x2be105, + 0x290386, + 0x25cb45, + 0x2e1fc5, + 0x296ac7, + 0x327f08, + 0x265a84, + 0x264046, + 0x293f06, + 0x213507, + 0x316f84, + 0x280606, + 0x3ba7c5, + 0x3ba7c9, + 0x20d344, + 0x2f7249, + 0x27d546, + 0x2c3848, + 0x231f45, + 0x385585, + 0x28df86, + 0x2b5249, + 0x219049, + 0x38cec6, + 0x2e6b48, + 0x2a4d48, + 0x25cb04, + 0x2b9c44, + 0x2b9c48, + 0x32c488, + 0x265b89, + 0x29b206, + 0x2a2fc6, + 0x33cc0d, + 0x3dafc6, + 0x2b8ac9, + 0x3bb285, + 0x206106, + 0x209d88, + 0x336245, + 0x238544, + 0x269dc5, + 0x285548, + 0x29da49, + 0x27a284, + 0x2bb5c6, + 0x39104a, + 0x2ffbc8, + 0x302849, + 0x26ad8a, + 0x397386, + 0x29ca48, + 0x244d45, + 0x28fd08, + 0x2f01c5, + 0x220649, + 0x33ef89, + 0x210642, + 0x272c85, + 0x273a46, + 0x27d487, + 0x245a85, + 0x2f6146, + 0x30c0c8, + 0x371086, + 0x2c15c9, + 0x27c3c6, + 0x284b48, + 0x38d285, + 0x2fe046, + 0x330248, + 0x2849c8, + 0x2d3c88, + 0x30e488, + 0x208bc4, + 0x23b083, + 0x2c1804, + 0x283a06, + 0x26c144, + 0x310bc7, + 0x2d3f49, + 0x2c8c85, + 0x2e21c6, + 0x23d8c6, + 0x2a888b, + 0x2b67c6, + 0x363746, + 0x2cc7c8, + 0x23d386, + 0x228783, + 0x2077c3, + 0x2bf744, + 0x231885, + 0x2ba987, + 0x27a408, + 0x27a40f, + 0x27ee8b, + 0x308488, + 0x2bb646, + 0x30878e, + 0x232ac3, + 0x2ba904, + 0x2b6745, + 0x2b6bc6, + 0x29154b, + 0x296286, + 0x21c449, + 0x281685, + 0x24fc08, + 0x208208, + 0x218f0c, + 0x2a2886, + 0x358206, + 0x2e2e05, + 0x28a1c8, + 0x27dcc5, + 0x35bb48, + 0x29e64a, + 0x2a1c89, + 0x727544, 0x2000c2, - 0x45e02782, + 0x46a03102, 0x200382, - 0x222884, - 0x2024c2, - 0x3216c4, - 0x202642, - 0x13c3, + 0x221b84, + 0x205982, + 0x346484, + 0x208ac2, + 0x4783, 0x2003c2, - 0x202002, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x206b43, - 0x23cf83, - 0x240b03, - 0x241844, - 0x22d7c3, - 0x236204, - 0x233743, - 0x2dd2c4, - 0x220583, - 0x2449c7, - 0x205e03, - 0x2013c3, - 0x2fb908, - 0x23cf83, - 0x27ee0b, - 0x2f7043, - 0x239606, - 0x21be02, - 0x2f060b, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x23cf83, - 0x206a03, - 0x217583, + 0x202442, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x24af03, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x232d43, + 0x250784, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x2dbb04, + 0x224943, + 0x245d47, + 0x211d83, + 0x204783, + 0x314d88, + 0x23f7c3, + 0x29248b, + 0x2f0fc3, + 0x22a7c6, + 0x21a602, + 0x2eaa8b, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x23f7c3, + 0x203a83, + 0x207cc3, 0x2000c2, - 0xa14c8, - 0x216685, - 0x237388, - 0x300ec8, - 0x202782, - 0x32ee85, - 0x3b4687, - 0x201242, - 0x2421c7, + 0xa7c88, + 0x217285, + 0x238748, + 0x2f9448, + 0x203102, + 0x342585, + 0x3b8e07, + 0x201bc2, + 0x243307, 0x200382, - 0x25d047, - 0x308789, - 0x2c99c8, - 0x205009, - 0x20b2c2, - 0x3c7e87, - 0x36b004, - 0x3b4747, - 0x383b47, - 0x25d602, - 0x205e03, - 0x200e82, - 0x202642, + 0x256d07, + 0x375509, + 0x2c93c8, + 0x209a89, + 0x20ba42, + 0x3bb387, + 0x2dc944, + 0x3b8ec7, + 0x388b07, + 0x25bd02, + 0x211d83, + 0x204fc2, + 0x208ac2, 0x2003c2, - 0x202142, + 0x204ac2, 0x200902, - 0x202002, - 0x2abec5, - 0x2a9785, - 0x2782, - 0x33743, - 0x22d7c3, - 0x233743, - 0x2053c3, - 0x220583, - 0x209a03, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x6df83, - 0x23cf83, - 0xaec3, + 0x202442, + 0x20a745, + 0x20f805, + 0x3102, + 0x34e83, + 0x22f743, + 0x234e83, + 0x211343, + 0x224943, + 0x2083c3, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x8d43, 0x101, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x219e43, - 0x206b43, - 0x6df83, - 0x23cf83, - 0x214703, - 0x490726c6, - 0x45dc3, - 0xca685, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x6df83, - 0x23cf83, - 0x6942, - 0xa14c8, - 0x12bd03, - 0x13c3, - 0x6df83, - 0x47984, - 0x1421d04, - 0xe7b05, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x214503, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x2158c3, + 0x49c27bc6, + 0x3c8c3, + 0xca085, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x39c2, + 0xa7c88, + 0x123fc3, + 0x4783, + 0x71003, + 0x46cc4, + 0x1421004, + 0xe29c5, 0x2000c2, - 0x391904, - 0x22d7c3, - 0x233743, - 0x220583, - 0x23d9c3, - 0x22e1c5, - 0x219e43, - 0x214903, - 0x206b43, - 0x251ac3, - 0x23cf83, - 0x202003, - 0x2418c3, - 0x207b83, + 0x395904, + 0x22f743, + 0x234e83, + 0x224943, + 0x250483, + 0x230145, + 0x214503, + 0x20e943, + 0x20ce83, + 0x22c483, + 0x23f7c3, + 0x202443, + 0x250803, + 0x2050c3, 0x5c2, - 0x2ebc2, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, + 0x28002, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, 0x2000c2, - 0x24ce83, - 0x202782, - 0x233743, - 0x220583, - 0x222884, - 0x206b43, - 0x23cf83, - 0x202002, - 0xa14c8, - 0x220583, - 0x6df83, - 0xa14c8, - 0x6df83, - 0x26f283, - 0x22d7c3, - 0x230944, - 0x233743, - 0x220583, - 0x2067c2, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x2067c2, - 0x22a243, - 0x206b43, - 0x23cf83, - 0x2ef083, - 0x202003, + 0x24af03, + 0x203102, + 0x234e83, + 0x224943, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x202442, + 0xa7c88, + 0x224943, + 0x71003, + 0xa7c88, + 0x71003, + 0x271803, + 0x22f743, + 0x232244, + 0x234e83, + 0x224943, + 0x203842, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x203842, + 0x225a83, + 0x20ce83, + 0x23f7c3, + 0x2e9343, + 0x202443, 0x2000c2, - 0x202782, - 0x220583, - 0x206b43, - 0x23cf83, - 0x239605, - 0x11a406, - 0x241844, - 0x21be02, - 0xa14c8, + 0x203102, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x22a7c5, + 0x112406, + 0x250784, + 0x21a602, + 0xa7c88, 0x2000c2, - 0x12dac5, - 0x1cb48, - 0x161c03, - 0x202782, - 0x4d8947c6, - 0xe184, - 0x10cd0b, - 0x35246, - 0x5f07, - 0x233743, - 0x4c108, - 0x4c10b, - 0x4c58b, - 0x4cc0b, - 0x4cf4b, - 0x4d20b, - 0x4d64b, - 0x9d86, - 0x220583, - 0x1b8e85, - 0x131844, - 0x218dc3, - 0x118c87, - 0xe1284, - 0x6d0c4, - 0x206b43, - 0x6bfc6, - 0xb2bc4, - 0x6df83, - 0x23cf83, - 0x2f7dc4, - 0x12d947, - 0x11a009, - 0x10cac8, - 0x14a504, - 0xec046, - 0x140fc8, - 0x141185, - 0x1da6c9, - 0x2fe03, - 0x12dac5, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x2013c3, - 0x23cf83, - 0x2f7043, - 0x21be02, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x219c83, - 0x205184, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x2dd2c4, - 0x220583, - 0x206b43, - 0x23cf83, - 0x239606, - 0x233743, - 0x220583, - 0x3d443, - 0x6df83, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x12dac5, - 0x5f07, - 0xe9c3, - 0x2fe03, - 0xa14c8, - 0x220583, - 0x22d7c3, - 0x233743, - 0x220583, - 0x89003, - 0x206b43, - 0x23cf83, - 0x50e2d7c3, - 0x233743, - 0x206b43, - 0x23cf83, - 0xa14c8, + 0x129245, + 0x1cb88, + 0x133c43, + 0x203102, + 0x4e495d86, + 0xc284, + 0x10404b, + 0x369c6, + 0x11e87, + 0x234e83, + 0x4a308, + 0x4a30b, + 0x4a78b, + 0x4ac8b, + 0x4afcb, + 0x4b28b, + 0x4b6cb, + 0x1c6986, + 0x224943, + 0x34c5, + 0x128c44, + 0x20ff83, + 0x10e2c7, + 0xdf604, + 0x70144, + 0x20ce83, + 0x18cfc6, + 0xb40c4, + 0x71003, + 0x23f7c3, + 0x2f2484, + 0x125c07, + 0x112009, + 0x103e08, + 0x127304, + 0xfd986, + 0x7608, + 0x68c45, + 0x7909, + 0x31e43, + 0x129245, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x204783, + 0x23f7c3, + 0x2f0fc3, + 0x21a602, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x214343, + 0x209c04, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x2dbb04, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x22a7c6, + 0x234e83, + 0x224943, + 0x3fc83, + 0x71003, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x129245, + 0x11e87, + 0x4b83, + 0x31e43, + 0xa7c88, + 0x224943, + 0x22f743, + 0x234e83, + 0x224943, + 0x5ee03, + 0x20ce83, + 0x23f7c3, + 0x51a2f743, + 0x234e83, + 0x20ce83, + 0x23f7c3, + 0xa7c88, 0x2000c2, - 0x202782, - 0x22d7c3, - 0x220583, - 0x206b43, + 0x203102, + 0x22f743, + 0x224943, + 0x20ce83, 0x2003c2, - 0x23cf83, - 0x33dd07, - 0x2c67cb, - 0x2165c3, - 0x31ec48, - 0x32c807, - 0x20f286, - 0x215b85, - 0x32efc9, - 0x205b88, - 0x37ab89, - 0x3a5d10, - 0x37ab8b, - 0x2e1d89, - 0x20e9c3, - 0x2f0cc9, - 0x232006, - 0x23200c, - 0x216748, - 0x3d8588, - 0x308c49, - 0x2b948e, - 0x30854b, - 0x336d4c, - 0x20a683, - 0x2802cc, - 0x3c6089, - 0x306487, - 0x23368c, - 0x2b0cca, - 0x24ec04, - 0x305a8d, - 0x280188, - 0x3c544d, - 0x287b86, - 0x24184b, - 0x31a189, - 0x388487, - 0x372586, - 0x274c09, - 0x327eca, - 0x3243c8, - 0x2f6c44, - 0x38dc07, - 0x231447, - 0x201c84, - 0x217444, - 0x200ac9, - 0x371bc9, - 0x28da08, - 0x20ab05, - 0x20b205, - 0x3dc286, - 0x305949, - 0x27368d, - 0x2fdbc8, - 0x3dc187, - 0x215c08, - 0x250a06, - 0x22e3c4, - 0x2850c5, - 0x3c1a46, - 0x3c33c4, - 0x3c5f87, - 0x3d10ca, - 0x20c184, - 0x211146, - 0x212109, - 0x21210f, - 0x212e0d, - 0x2136c6, - 0x21c750, - 0x21cb46, - 0x21d247, - 0x21da87, - 0x21da8f, - 0x21ec49, - 0x224a46, - 0x225087, - 0x225088, - 0x225e89, - 0x3d2008, - 0x2ece07, - 0x216683, - 0x22d646, - 0x3c3ac8, - 0x2b974a, - 0x3785c9, - 0x205cc3, - 0x32ed86, - 0x265b0a, - 0x2f2087, - 0x3062ca, - 0x21f60e, - 0x21ed86, - 0x2df347, - 0x2aa086, - 0x242d46, - 0x396d8b, - 0x21608a, - 0x2c6e0d, - 0x3c1e07, - 0x268908, - 0x268909, - 0x26890f, - 0x2b6ecc, - 0x2729c9, - 0x2e454e, - 0x244aca, - 0x2d5a86, - 0x3d9b86, - 0x3264cc, - 0x33934c, - 0x34b0c8, - 0x36a8c7, - 0x235905, - 0x294b44, - 0x20278e, - 0x2663c4, - 0x329007, - 0x3d6d0a, - 0x22c794, - 0x22d08f, - 0x21dc48, - 0x22d508, - 0x351a8d, - 0x351a8e, - 0x22d989, - 0x22e808, - 0x22e80f, - 0x23338c, - 0x23338f, - 0x234507, - 0x236b0a, - 0x24748b, - 0x239c48, - 0x23ac47, - 0x26014d, - 0x336146, - 0x305c46, - 0x23c949, - 0x25b608, - 0x242b48, - 0x242b4e, - 0x2c68c7, - 0x2fc1c5, - 0x247745, - 0x200f04, - 0x20f546, - 0x28d908, - 0x30ae43, - 0x2cb98e, - 0x260508, - 0x2a688b, - 0x26f447, - 0x22a2c5, - 0x26ec06, - 0x2ad3c7, - 0x347a08, - 0x38ca49, - 0x3cee45, - 0x289488, - 0x221746, - 0x3a7a4a, - 0x202689, - 0x233749, - 0x23374b, - 0x30a308, - 0x201b49, - 0x20abc6, - 0x24998a, - 0x35660a, - 0x236d0c, - 0x335f07, - 0x2c97ca, - 0x346ecb, - 0x346ed9, - 0x32ab08, - 0x239685, - 0x260306, - 0x26aec9, - 0x2c9ec6, - 0x378d0a, - 0x205d86, - 0x202404, - 0x2cc70d, - 0x202407, - 0x221b09, - 0x24adc5, - 0x24b648, - 0x24bec9, + 0x23f7c3, + 0x33f4c7, + 0x2c5d4b, + 0x2171c3, + 0x315dc8, + 0x324ac7, + 0x206686, + 0x213a45, + 0x3426c9, + 0x211b08, + 0x37e609, + 0x3a5f50, + 0x37e60b, + 0x2e3949, + 0x204b83, + 0x2eb149, + 0x233646, + 0x23364c, + 0x217348, + 0x3d7e08, + 0x3759c9, + 0x2b828e, + 0x3752cb, + 0x32cecc, + 0x21c183, + 0x28764c, + 0x3c7709, + 0x302187, + 0x234dcc, + 0x2b238a, + 0x23d544, + 0x3b27cd, + 0x287508, + 0x35460d, + 0x30d5c6, + 0x25078b, + 0x312189, + 0x38c407, + 0x2fb986, + 0x3be009, + 0x32a88a, + 0x31a548, + 0x2f0bc4, + 0x391e47, + 0x23b747, + 0x330ac4, + 0x215dc4, + 0x331609, + 0x268309, + 0x28dc48, + 0x2ed2c5, + 0x20b985, + 0x2045c6, + 0x3b2689, + 0x2646cd, + 0x2f8208, + 0x2044c7, + 0x213ac8, + 0x23ae06, + 0x3a1344, + 0x284505, + 0x3c3c46, + 0x3c4d44, + 0x3c7607, + 0x3d030a, + 0x20d144, + 0x20eec6, + 0x212fc9, + 0x212fcf, + 0x213ccd, + 0x214886, + 0x21c790, + 0x21cb86, + 0x21d287, + 0x21e347, + 0x21e34f, + 0x21f549, + 0x223f06, + 0x224f07, + 0x224f08, + 0x226e89, + 0x3b9c48, + 0x3ac987, + 0x217283, + 0x22f5c6, + 0x3c5448, + 0x2b854a, + 0x387589, + 0x211c43, + 0x342486, + 0x263e8a, + 0x2ec387, + 0x301fca, + 0x366ece, + 0x21f686, + 0x30f8c7, + 0x22d3c6, + 0x243e86, + 0x39ad8b, + 0x216c8a, + 0x2c638d, + 0x3c4007, + 0x267788, + 0x267789, + 0x26778f, + 0x2ab00c, + 0x269509, + 0x2d368e, + 0x245e4a, + 0x228e06, + 0x3009c6, + 0x31b40c, + 0x31dc0c, + 0x337a48, + 0x35f9c7, + 0x237085, + 0x22adc4, + 0x32fa8e, + 0x264b44, + 0x320907, + 0x3d5d8a, + 0x22de54, + 0x22f00f, + 0x21e508, + 0x22f488, + 0x36174d, + 0x36174e, + 0x22f909, + 0x2309c8, + 0x2309cf, + 0x234acc, + 0x234acf, + 0x235c87, + 0x237eca, + 0x2467cb, + 0x2392c8, + 0x23b187, + 0x25e68d, + 0x32d486, + 0x3b2986, + 0x23e9c9, + 0x259788, + 0x243c88, + 0x243c8e, + 0x2c5e47, + 0x2f6645, + 0x246a85, + 0x20a544, + 0x206946, + 0x28db48, + 0x332f43, + 0x2f190e, + 0x25ea48, + 0x2a5ccb, + 0x2719c7, + 0x225b05, + 0x2877c6, + 0x2aeb87, + 0x3139c8, + 0x268a49, + 0x3cbc05, + 0x288d08, + 0x217b46, + 0x3a79ca, + 0x32f989, + 0x234e89, + 0x234e8b, + 0x33dd48, + 0x330989, + 0x2ed386, + 0x36baca, + 0x2b4aca, + 0x2380cc, + 0x3448c7, + 0x2c91ca, + 0x34a50b, + 0x34a519, + 0x323088, + 0x22a845, + 0x25e846, + 0x2167c9, + 0x2c98c6, + 0x387cca, + 0x211d06, + 0x2227c4, + 0x2cb1cd, + 0x331247, + 0x2227c9, + 0x249845, + 0x249a88, + 0x24a0c9, + 0x24bd44, + 0x24c9c7, + 0x24c9c8, + 0x24db87, + 0x266708, + 0x2529c7, + 0x338285, + 0x25928c, + 0x259989, + 0x2def0a, + 0x3ab249, + 0x2eb249, + 0x38bf4c, + 0x25c58b, + 0x25dbc8, + 0x25ef88, + 0x262984, + 0x286b48, + 0x287dc9, + 0x2b2447, + 0x213206, + 0x29fd87, + 0x291009, + 0x31f6cb, + 0x326207, + 0x390347, + 0x32bc07, + 0x354584, + 0x354585, + 0x2db805, + 0x3577cb, + 0x3b7bc4, + 0x34fa88, + 0x2f478a, + 0x217c07, + 0x3d7a47, + 0x290852, + 0x292a46, + 0x231b06, + 0x31fe4e, + 0x293286, + 0x2967c8, + 0x296e0f, + 0x3549c8, + 0x39b9c8, + 0x343b4a, + 0x343b51, + 0x2a48ce, + 0x20228a, + 0x20228c, + 0x230bc7, + 0x230bd0, + 0x3c1a48, + 0x2a4ac5, + 0x2af8ca, + 0x3c4d8c, + 0x29944d, + 0x3c1cc6, + 0x3c1cc7, + 0x3c1ccc, + 0x3ced4c, + 0x31540c, + 0x2b028b, + 0x38f704, + 0x22d944, + 0x2b1c49, + 0x341647, + 0x39ff49, + 0x2b4909, + 0x2b2047, + 0x2b2206, + 0x2b2209, + 0x2b2603, + 0x37118a, + 0x316987, + 0x36c5cb, + 0x2c620a, + 0x2dc9c4, + 0x37c586, + 0x283a89, + 0x338544, + 0x2f630a, + 0x242b05, + 0x2bfe85, + 0x2bfe8d, + 0x2c01ce, + 0x2c1945, + 0x33e186, + 0x22a3c7, + 0x25950a, + 0x2dafc6, + 0x2e8fc4, + 0x3b2b47, + 0x2cd98b, + 0x266407, 0x24e444, - 0x24eb07, - 0x24eb08, - 0x24fcc7, - 0x267e88, - 0x254907, - 0x39fd05, - 0x25b10c, - 0x25b809, - 0x2e0b8a, - 0x3aacc9, - 0x2f0dc9, - 0x387fcc, - 0x25de8b, - 0x25f048, - 0x260908, - 0x264044, - 0x2872c8, - 0x288c09, - 0x2b0d87, - 0x212346, - 0x29cfc7, - 0x29b1c9, - 0x3cbb0b, - 0x327b87, - 0x38b307, - 0x28e147, - 0x3c53c4, - 0x3c53c5, - 0x2dcfc5, - 0x354a0b, - 0x3b6784, - 0x3a1308, - 0x2cb60a, - 0x221807, - 0x3d81c7, - 0x290a92, - 0x28c186, - 0x22fac6, - 0x37f0ce, - 0x317f46, - 0x295548, - 0x295b8f, - 0x3c5808, - 0x3979c8, - 0x342b4a, - 0x342b51, - 0x2a46ce, - 0x20434a, - 0x20434c, - 0x22ea07, - 0x22ea10, - 0x3bf148, - 0x2a48c5, - 0x2ad9ca, - 0x3c340c, - 0x297c0d, - 0x209a06, - 0x3c8207, - 0x3c820c, - 0x209a0c, - 0x21c44c, - 0x2af28b, - 0x38a844, - 0x226704, - 0x2b0589, - 0x37af87, - 0x39c749, - 0x356449, - 0x2b0987, - 0x2b0b46, - 0x2b0b49, - 0x2b0f43, - 0x2add0a, - 0x31f807, - 0x372e0b, - 0x2c6c8a, - 0x36b084, - 0x3997c6, - 0x284649, - 0x39ffc4, - 0x2f378a, - 0x241385, - 0x2c03c5, - 0x2c03cd, - 0x2c070e, - 0x2bc4c5, - 0x33c9c6, - 0x239207, - 0x25b38a, - 0x2666c6, - 0x2ee984, - 0x305e07, - 0x2d934b, - 0x267b87, - 0x2503c4, - 0x2b1a46, - 0x2b1a4d, - 0x2dfc0c, - 0x212a06, - 0x2fddca, - 0x2a9b06, - 0x2f7888, - 0x23aa87, - 0x24b30a, - 0x249bc6, - 0x2066c3, - 0x2066c6, - 0x3c3948, - 0x2b070a, - 0x287887, - 0x287888, - 0x2d4344, - 0x291007, - 0x2d87c8, - 0x29f788, - 0x292348, - 0x2d198a, - 0x2e43c5, - 0x30bc87, - 0x3a8e13, - 0x2588c6, - 0x21a048, - 0x222049, - 0x242088, - 0x36198b, - 0x3baf48, - 0x26a304, - 0x358686, - 0x322146, - 0x319089, - 0x3d8747, - 0x25b208, - 0x29f906, - 0x2f9d44, - 0x3a4dc5, - 0x2d00c8, - 0x203e4a, - 0x2cc388, - 0x2d1406, - 0x29c1ca, - 0x2b6a48, - 0x2d7848, - 0x2d8dc8, - 0x2d9886, - 0x2dbf06, - 0x3aa78c, - 0x2dc3d0, - 0x2a6345, - 0x31dfc8, - 0x31dfd0, - 0x3c5610, - 0x3a5b8e, - 0x3aa40e, - 0x3aa414, - 0x3b008f, - 0x3b0446, - 0x204211, - 0x201d53, - 0x2021c8, - 0x360c45, - 0x31f188, - 0x37e385, - 0x33304c, - 0x227989, - 0x294989, - 0x227e07, - 0x235fc9, - 0x3788c7, - 0x35b4c6, - 0x284ec7, - 0x2075c5, - 0x20af03, - 0x30b009, - 0x24c8c9, - 0x23d443, - 0x2192c4, - 0x21ff8d, - 0x38ce0f, - 0x2f9d85, - 0x332f46, - 0x217c47, - 0x2164c7, - 0x3da906, - 0x3da90b, - 0x2a5d05, - 0x25c706, - 0x303647, - 0x254e09, - 0x224446, - 0x384245, - 0x3cc78b, - 0x3b5086, - 0x3c7a05, - 0x23da48, - 0x28bf48, - 0x2a100c, - 0x2a1010, - 0x2a7a49, - 0x2b1e87, - 0x324c8b, - 0x2eb106, - 0x2eccca, - 0x206a8b, - 0x2ee08a, - 0x2ee306, - 0x2eef45, - 0x32c706, - 0x27ae08, - 0x227eca, - 0x35171c, - 0x2f710c, - 0x2f7408, - 0x239605, - 0x38a147, - 0x21f4c6, - 0x3494c5, - 0x215f46, - 0x3daac8, - 0x2bf387, - 0x2b9388, - 0x25898a, - 0x217d4c, - 0x2c7289, - 0x20a587, - 0x246984, - 0x247806, - 0x39754a, - 0x356545, - 0x2170cc, - 0x21bf48, - 0x2aa388, - 0x2d49cc, - 0x3587cc, - 0x36abc9, - 0x36ae07, - 0x24a14c, - 0x228184, - 0x24a60a, - 0x314a4c, - 0x25690b, - 0x256f8b, - 0x259b06, - 0x25ee87, - 0x22ec47, - 0x22ec4f, - 0x307851, - 0x2e2e12, - 0x2641cd, - 0x2641ce, - 0x26450e, - 0x3b0248, - 0x3b0252, - 0x269ac8, - 0x222687, - 0x2528ca, - 0x2a8108, - 0x317f05, - 0x2b4b4a, - 0x21cec7, - 0x2e8684, - 0x203843, - 0x236745, - 0x342dc7, - 0x34e287, - 0x297e0e, - 0x31d5cd, - 0x326a89, - 0x255c85, - 0x352a03, - 0x337986, - 0x25cd05, - 0x2a6ac8, - 0x2bcf89, - 0x260345, - 0x26034f, - 0x2dadc7, - 0x215a05, - 0x26fe0a, - 0x3bf6c6, - 0x2f9889, - 0x37b50c, - 0x3bcfc9, - 0x3d1b06, - 0x2cb40c, - 0x33b8c6, - 0x304fc8, - 0x305fc6, - 0x33f806, - 0x2b5644, - 0x31ddc3, - 0x32358a, - 0x28e451, - 0x2818ca, - 0x27d185, - 0x355ac7, - 0x258d07, - 0x2d88c4, - 0x2d88cb, - 0x204e88, - 0x2be3c6, - 0x2326c5, - 0x32a284, - 0x243089, + 0x310fc6, + 0x310fcd, + 0x2ddfcc, + 0x20cd46, + 0x2f840a, + 0x26ce06, + 0x230448, + 0x380b87, + 0x2bd50a, + 0x23ef46, + 0x203743, + 0x203746, + 0x3c52c8, + 0x2b1dca, + 0x287107, + 0x287108, + 0x2d3344, + 0x28fe87, + 0x2d6748, + 0x29bcc8, + 0x272788, + 0x2d1cca, + 0x2e1985, + 0x2e1c07, + 0x2566d3, + 0x26b306, + 0x376588, + 0x221349, + 0x2431c8, + 0x23c08b, + 0x39d088, + 0x287cc4, + 0x3d2b06, + 0x319406, + 0x30e6c9, + 0x3d7fc7, + 0x259388, + 0x29be46, + 0x200bc4, + 0x3a5005, + 0x2cef08, + 0x201d8a, + 0x2cae48, + 0x2d0246, + 0x29cc4a, + 0x28e8c8, + 0x2d57c8, + 0x2d6d48, + 0x2d7546, + 0x2da186, + 0x3aad0c, + 0x2da650, + 0x2a2c05, + 0x3547c8, + 0x3b48d0, + 0x3547d0, + 0x3a5dce, + 0x3aa98e, + 0x3aa994, + 0x3b164f, + 0x3b1a06, + 0x202151, + 0x330b93, + 0x331008, + 0x32efc5, + 0x316308, + 0x383a45, + 0x33580c, + 0x295f49, + 0x22ac09, + 0x2fa547, + 0x265e49, + 0x387887, + 0x35cfc6, + 0x284307, + 0x204005, + 0x208d83, + 0x23fc83, + 0x210484, + 0x34290d, + 0x34944f, + 0x200c05, + 0x335706, + 0x212b07, + 0x2170c7, + 0x207b46, + 0x207b4b, + 0x2a5705, + 0x25af46, + 0x300847, + 0x252ec9, + 0x21fcc6, + 0x389205, + 0x36820b, + 0x3a8f06, + 0x207f45, + 0x241d88, + 0x292808, + 0x2a77cc, + 0x2a77d0, + 0x3524c9, + 0x2b2b47, + 0x34e14b, + 0x2e59c6, + 0x3ac84a, + 0x306a4b, + 0x2e85ca, + 0x2e8846, + 0x2e9205, + 0x3249c6, + 0x27c588, + 0x2fa60a, + 0x3613dc, + 0x2f108c, + 0x2f1388, + 0x22a7c5, + 0x38ef47, + 0x2b7ec6, + 0x367985, + 0x216b46, + 0x207d08, + 0x2bedc7, + 0x2b8188, + 0x26b3ca, + 0x212c0c, + 0x3331c9, + 0x2e2347, + 0x227784, + 0x246b46, + 0x39b54a, + 0x2b4a05, + 0x215a4c, + 0x219408, + 0x28eb48, + 0x227d4c, + 0x3d2c4c, + 0x2dc509, + 0x2dc747, + 0x35b44c, + 0x220284, + 0x24baca, + 0x309ccc, + 0x25204b, + 0x25450b, + 0x254c06, + 0x257c47, + 0x230e07, + 0x230e0f, + 0x303551, + 0x2e03d2, + 0x25a48d, + 0x25a48e, + 0x25a7ce, + 0x3b1808, + 0x3b1812, + 0x262b08, + 0x221987, + 0x250bca, + 0x2a86c8, + 0x293245, + 0x2b5e4a, + 0x21cf07, + 0x2e6804, + 0x201783, + 0x237b05, + 0x343dc7, + 0x306547, + 0x29964e, + 0x31e1cd, + 0x3372c9, + 0x248405, + 0x356b83, + 0x34bf46, + 0x25b545, + 0x2a5f08, + 0x321b09, + 0x25e885, + 0x25e88f, + 0x2d9047, + 0x2138c5, + 0x27238a, + 0x3dc646, + 0x2f3f49, + 0x38200c, + 0x3cbd09, + 0x205b86, + 0x2f458c, + 0x33d6c6, + 0x3013c8, + 0x301cc6, + 0x340fc6, + 0x2b6944, + 0x315343, + 0x318f4a, + 0x32bf11, + 0x26c5ca, + 0x25c9c5, + 0x27e1c7, + 0x257107, + 0x2d6844, + 0x2d684b, + 0x209908, + 0x2bdbc6, + 0x233d05, + 0x322804, + 0x234449, 0x2008c4, - 0x242987, - 0x380385, - 0x380387, - 0x37f305, + 0x243ac7, + 0x349b05, + 0x349b07, + 0x320085, 0x2535c3, - 0x222548, - 0x31f38a, - 0x2166c3, - 0x2166ca, - 0x27eb06, - 0x2600cf, - 0x3d3489, - 0x2cb910, - 0x2fd448, - 0x2d2049, - 0x298b07, - 0x2b19cf, - 0x393804, - 0x2dd344, - 0x21c9c6, - 0x3ac106, - 0x2ed80a, - 0x2574c6, - 0x394fc7, - 0x3152c8, - 0x3154c7, - 0x316907, - 0x31820a, - 0x31720b, - 0x328805, - 0x2e2a48, - 0x21b2c3, - 0x3ba74c, - 0x351e0f, - 0x23570d, - 0x259307, - 0x326bc9, - 0x225547, - 0x23be88, - 0x22c98c, - 0x26a208, - 0x23d708, - 0x33290e, - 0x345b14, - 0x346024, - 0x35d98a, - 0x37b14b, - 0x378984, - 0x378989, - 0x2f1d08, - 0x2484c5, - 0x30a94a, - 0x260747, - 0x21e744, - 0x24ce83, - 0x22d7c3, - 0x236204, - 0x233743, - 0x220583, - 0x222884, - 0x219e43, - 0x205e03, - 0x2dc3c6, - 0x205184, - 0x206b43, - 0x23cf83, - 0x213c43, + 0x221848, + 0x31650a, + 0x2172c3, + 0x2172ca, + 0x279006, + 0x25e60f, + 0x3d16c9, + 0x2f1890, + 0x2f7908, + 0x2d0749, + 0x29a347, + 0x310f4f, + 0x3977c4, + 0x2dbb84, + 0x21ca06, + 0x3ac686, + 0x2e7e8a, + 0x250346, + 0x398f87, + 0x30a7c8, + 0x30a9c7, + 0x30be87, + 0x30d84a, + 0x30c78b, + 0x32b1c5, + 0x2e0008, + 0x21b803, + 0x3c02cc, + 0x361acf, + 0x236e8d, + 0x257707, + 0x337409, + 0x22bac7, + 0x240b48, + 0x22e04c, + 0x287bc8, + 0x23ba88, + 0x328d4e, + 0x347494, + 0x3479a4, + 0x35e78a, + 0x37eacb, + 0x387944, + 0x387949, + 0x2eda08, + 0x247245, + 0x332a4a, + 0x291287, + 0x21f004, + 0x24af03, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x224943, + 0x221b84, + 0x214503, + 0x211d83, + 0x2da646, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x214e03, 0x2000c2, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x236204, - 0x233743, - 0x220583, - 0x219e43, - 0x2dc3c6, - 0x206b43, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x228843, - 0x206b43, - 0x6df83, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x205184, - 0x206b43, - 0x23cf83, + 0x24af03, + 0x203102, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x224943, + 0x214503, + 0x2da646, + 0x20ce83, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x20d343, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x23f7c3, 0x2000c2, - 0x24de03, - 0x202782, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x205cc2, - 0x235d82, - 0x202782, - 0x22d7c3, - 0x206742, + 0x24e8c3, + 0x203102, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x207982, + 0x247502, + 0x203102, + 0x22f743, + 0x2037c2, 0x2005c2, - 0x222884, - 0x3216c4, - 0x228d42, - 0x205184, + 0x221b84, + 0x346484, + 0x2254c2, + 0x209c04, 0x2003c2, - 0x23cf83, - 0x213c43, - 0x259b06, - 0x2195c2, - 0x207d82, - 0x223f82, - 0x5361f043, - 0x53a04343, - 0x59646, - 0x59646, - 0x241844, - 0x2013c3, - 0x8d78a, - 0x1721cc, - 0x1dca0c, - 0xca48d, - 0x12dac5, - 0x8cf0c, - 0x2afc7, - 0xc946, - 0x13848, - 0x1b047, - 0x20a08, - 0x18930a, - 0x1142c7, - 0x5468d145, - 0xdee89, - 0x34f8b, - 0x17830b, - 0x1c6408, - 0x5f89, - 0x18c58a, - 0x17598e, - 0x8f68d, - 0x1441e8b, - 0xdfaca, - 0xe184, - 0x5c846, - 0x160308, - 0x6c648, - 0x3fbc7, - 0xbb45, - 0x19447, - 0x80b89, - 0x1a0047, - 0x18b08, - 0x29009, - 0x4aec4, - 0x4fe45, - 0x16364e, - 0x6c2cd, - 0x5d88, - 0x54a6e4c6, - 0x55571a08, - 0x76248, - 0x13df10, - 0x5784c, - 0x65247, - 0x66287, - 0x6a407, - 0x70c47, - 0x37482, - 0x13be07, - 0x1c1f46, - 0x1624c, - 0x198c85, - 0x1cc607, - 0xa7906, - 0xa8549, - 0xaa8c8, - 0x373c2, + 0x23f7c3, + 0x214e03, + 0x254c06, + 0x210782, + 0x204cc2, + 0x222082, + 0x5421f943, + 0x54602283, + 0x57a46, + 0x57a46, + 0x250784, + 0x204783, + 0x8d9ca, + 0x14b54c, + 0x18840c, + 0xc9e8d, + 0x129245, + 0x8d14c, + 0x26807, + 0xd886, + 0x14a08, + 0x1b587, + 0x20048, + 0x19458a, + 0x109547, + 0x5528d385, + 0xdd949, + 0x3670b, + 0x1872cb, + 0x1c7a88, + 0x11f09, + 0x153a4a, + 0x17f08e, + 0x8f58d, + 0x1442fcb, + 0xdde8a, + 0xc284, + 0x5b086, + 0x12a3c8, + 0x18d648, + 0x39dc7, + 0xac85, + 0x10607, + 0x35309, + 0x1385c7, + 0xfcc8, + 0x229c9, + 0x48cc4, + 0x49945, + 0x16388e, + 0x18d2cd, + 0x11d08, + 0x556a1146, + 0x561669c8, + 0x772c8, + 0x13f6d0, + 0x5504c, + 0x636c7, + 0x64a07, + 0x6a8c7, + 0x73747, + 0x4582, + 0x113707, + 0x16e4c, + 0x17ba45, + 0x126bc7, + 0xa7686, + 0xa8c49, + 0xac2c8, + 0x5dc2, 0x5c2, - 0x18bb06, - 0x1c4a0b, - 0x1c4d06, - 0x1091c4, - 0x45647, - 0xe4e09, - 0x504c9, - 0x17f8c8, - 0x4d442, - 0x191789, - 0xc548, - 0xed64a, - 0x6d06, - 0xcea89, - 0xdfa47, - 0xe0189, - 0xe22c8, - 0xe32c7, - 0xe4349, - 0xe9c45, - 0xe9fd0, - 0x178f46, - 0x45585, - 0x1667c7, - 0xebccd, - 0x409c5, - 0xf0bc6, - 0xf1407, - 0xf7dd8, - 0x1a03c8, - 0x10ba8a, - 0x16f82, - 0x56d4a, - 0x6ca4d, - 0x1bc2, - 0x5bac6, - 0x51488, - 0x49f88, - 0x6d8c9, - 0x115f88, - 0x7b54e, - 0x6db08, - 0x137987, - 0x55b08104, - 0x10ec4d, - 0x100185, - 0x109f48, - 0x1abcc8, - 0x10f346, - 0xd2c2, - 0x53844, - 0x33d86, - 0xec046, - 0xa842, + 0x190b46, + 0x1a87cb, + 0x1a8ac6, + 0x175f44, + 0x133a87, + 0x6d309, + 0x53889, + 0x120648, + 0x4b4c2, + 0x195789, + 0xd488, + 0xe7cca, + 0x12eac6, + 0xcd7c9, + 0xdde07, + 0xde549, + 0xdf8c8, + 0xe0887, + 0xe1909, + 0xe4485, + 0xe4810, + 0x1bb506, + 0x1339c5, + 0x930c7, + 0x6d84d, + 0x41c85, + 0xeb046, + 0xeb887, + 0xf2498, + 0x138948, + 0x17638a, + 0x129c2, + 0x542ca, + 0x64e0d, + 0x5c82, + 0x1c6b46, + 0x9d3c8, + 0x18fe88, + 0x70949, + 0x10b488, + 0x74e4e, + 0x70b88, + 0x14bf47, + 0x56766904, + 0xecd4d, + 0xfc9c5, + 0x1769c8, + 0x1ac248, + 0x105546, + 0x13602, + 0x72d04, + 0x64cc6, + 0xfd986, + 0x56934b0b, + 0x8c42, 0x401, - 0x5ed07, - 0x117c83, - 0x54ef8644, - 0x55296943, + 0x5d807, + 0x10d203, + 0x55af2d04, + 0x55e98183, 0xc1, - 0x11746, + 0x1cf0c6, 0xc1, 0x201, - 0x11746, - 0x117c83, - 0x418c3, - 0x9a544, - 0x147da45, - 0x52184, - 0x65387, - 0x2782, - 0x24ec04, - 0x22d7c3, - 0x251184, - 0x222884, - 0x206b43, - 0x221f05, - 0x214703, - 0x25b583, - 0x3da885, - 0x207b83, - 0xe583, - 0x56a2d7c3, - 0x233743, - 0x4183, - 0x220583, + 0x1cf0c6, + 0x10d203, + 0x50803, + 0x81b84, + 0x305c7, + 0x50c7, + 0x145d285, + 0x4ff04, + 0x63807, + 0x3102, + 0x23d544, + 0x22f743, + 0x24f044, + 0x221b84, + 0x20ce83, + 0x221205, + 0x2158c3, + 0x259703, + 0x207ac5, + 0x2050c3, + 0x6e83, + 0x57a2f743, + 0x234e83, + 0x4f044, + 0x20c3, + 0x224943, 0x200181, - 0x14903, - 0x205e03, - 0x3216c4, - 0x205184, - 0x206b43, - 0x23cf83, - 0x202003, - 0xa14c8, + 0xe943, + 0x211d83, + 0x346484, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x202443, + 0xa7c88, 0x2000c2, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x228843, + 0x24af03, + 0x203102, + 0x22f743, + 0x234e83, + 0x20d343, 0x2005c2, - 0x222884, - 0x219e43, - 0x205e03, - 0x206b43, - 0x2013c3, - 0x23cf83, - 0x207b83, - 0xa14c8, - 0x1213c7, - 0x2782, - 0x1a4d45, - 0x5798f, - 0xdac46, - 0x144b148, - 0x11630e, - 0x57a0f9c2, - 0x32bd88, - 0x310446, - 0x252306, - 0x30fdc7, - 0x57e01cc2, - 0x583d3308, - 0x21538a, - 0x264cc8, - 0x200b02, - 0x31f649, - 0x328847, - 0x2122c6, - 0x222289, - 0x30bdc4, - 0x20f186, - 0x2c5bc4, - 0x2072c4, - 0x25ab09, - 0x314786, - 0x22c345, - 0x2684c5, - 0x22df07, - 0x2c2ac7, - 0x28c3c4, - 0x310006, - 0x2f9045, - 0x218c85, - 0x27d245, - 0x2af587, - 0x26f285, - 0x24c349, - 0x3ccec5, - 0x347b44, - 0x266607, - 0x330b8e, - 0x360849, - 0x37ef89, - 0x335d46, - 0x23e788, - 0x24378b, - 0x367ecc, - 0x34d746, - 0x336c07, - 0x2b2a45, - 0x21744a, - 0x28db09, - 0x203489, - 0x3d5546, - 0x303405, - 0x247ac5, - 0x34a009, - 0x27d3cb, - 0x2e1886, - 0x350706, - 0x202c44, - 0x290746, - 0x2fc248, - 0x3b7506, - 0x357086, - 0x3c6d48, - 0x3d1907, - 0x3d5309, - 0x3d7485, - 0xa14c8, - 0x3cedc4, - 0x316e84, - 0x20b085, - 0x343e09, - 0x2214c7, - 0x2214cb, - 0x2245ca, - 0x2278c5, - 0x586022c2, - 0x2c6b47, - 0x58a27bc8, - 0x3d5787, - 0x2bdf05, - 0x35cd4a, - 0x2782, - 0x279acb, - 0x27f74a, - 0x24c7c6, - 0x22a2c3, - 0x36f7cd, - 0x3a864c, - 0x3b568d, - 0x231085, - 0x27a785, - 0x30ae87, - 0x3dac89, - 0x215286, - 0x257345, - 0x2eed48, - 0x290643, - 0x3011c8, - 0x290648, - 0x2c7d47, - 0x32af88, - 0x3a8449, - 0x2cbec7, - 0x2c6347, - 0x27d8c8, - 0x31ad44, - 0x31ad47, - 0x287a88, - 0x35e006, - 0x39990f, - 0x2e5007, - 0x358d86, - 0x36af45, - 0x224103, - 0x249d47, - 0x387183, - 0x24ff86, - 0x252086, - 0x252f86, - 0x294045, - 0x267e83, - 0x391408, - 0x388d49, - 0x39a54b, - 0x253108, - 0x2545c5, - 0x2563c5, - 0x58eb06c2, - 0x284f89, - 0x222907, - 0x25c785, - 0x25aa07, - 0x25c046, - 0x380bc5, - 0x25cb4b, - 0x25f044, - 0x264885, - 0x2649c7, - 0x277f46, - 0x278385, - 0x2874c7, - 0x287e07, - 0x2d2944, - 0x28cd0a, - 0x28ee48, - 0x243a49, - 0x368a85, - 0x2b2dc6, - 0x2fc40a, - 0x2683c6, - 0x22cd47, - 0x2c9b4d, - 0x2a5849, - 0x341d45, - 0x202d07, - 0x330f88, - 0x330508, - 0x21fa47, - 0x32e906, - 0x222c87, - 0x251b03, - 0x314704, - 0x37d145, - 0x3a9b07, - 0x3ae709, - 0x22ac48, - 0x22cc45, - 0x24b544, - 0x24cac5, - 0x2532cd, - 0x202082, - 0x2c1346, - 0x25ba06, - 0x2fe5ca, - 0x390dc6, - 0x397485, - 0x2c6085, - 0x2c6087, - 0x3a788c, - 0x2760ca, - 0x290406, - 0x2dbe05, - 0x290586, - 0x2908c7, - 0x292046, - 0x293f4c, - 0x2223c9, - 0x59211bc7, - 0x295f45, - 0x295f46, - 0x2963c8, - 0x2bca45, - 0x2a6545, - 0x2a6f08, - 0x2a710a, - 0x5967a482, - 0x59a08402, - 0x300945, - 0x281443, - 0x229d88, - 0x20b443, - 0x2a7384, - 0x2f99cb, - 0x3c72c8, - 0x2b1588, - 0x59fcc049, - 0x2abbc9, - 0x2ac306, - 0x2ad048, - 0x2ad249, - 0x2ae3c6, - 0x2ae545, - 0x24a8c6, - 0x2aed09, - 0x2ba987, - 0x34b786, - 0x21d087, - 0x3731c7, - 0x21f1c4, - 0x5a3a06c9, - 0x349708, - 0x3d3208, - 0x23fd07, - 0x2caf06, - 0x3c7789, - 0x2522c7, - 0x348f8a, - 0x369508, - 0x212c47, - 0x224f06, - 0x2ad5ca, - 0x231808, - 0x2e8745, - 0x2269c5, - 0x351147, - 0x31c689, - 0x3208cb, - 0x355d88, - 0x3ccf49, - 0x253a47, - 0x2bbd8c, - 0x2bc60c, - 0x2bc90a, - 0x2bcb8c, + 0x221b84, + 0x214503, + 0x211d83, + 0x20ce83, + 0x204783, + 0x23f7c3, + 0x2050c3, + 0xa7c88, + 0x1daa47, + 0x3102, + 0x1a4f85, + 0x5518f, + 0xd8ec6, + 0x14441c8, + 0x10b88e, + 0x58a06dc2, + 0x324048, + 0x28e106, + 0x250086, + 0x305fc7, + 0x58e00c82, + 0x593d1548, + 0x210eca, + 0x263148, + 0x200ac2, + 0x3167c9, + 0x32b207, + 0x213186, + 0x221589, + 0x2e1d44, + 0x206586, + 0x2c5144, + 0x295a04, + 0x258c89, + 0x309a06, + 0x2270c5, + 0x267345, + 0x22fe87, + 0x2c2207, + 0x292c84, + 0x35aa06, + 0x2f3705, + 0x20fe45, + 0x25ca85, + 0x2b0587, + 0x271805, + 0x24a549, + 0x321605, + 0x313b04, + 0x2daf07, + 0x32e50e, + 0x36afc9, + 0x31fd09, + 0x344706, + 0x240288, + 0x244b0b, + 0x36950c, + 0x34d146, + 0x32cd87, + 0x2b3f45, + 0x215dca, + 0x28dd49, + 0x2013c9, + 0x3d6746, + 0x300605, + 0x246e05, + 0x354009, + 0x25cc0b, + 0x3a9786, + 0x352886, + 0x2044c4, + 0x26de46, + 0x2f66c8, + 0x3ba3c6, + 0x2aa506, + 0x3ce108, + 0x3d4887, + 0x3d6509, + 0x3d9a85, + 0xa7c88, + 0x3cbb84, + 0x30c404, + 0x20b805, + 0x345409, + 0x220d87, + 0x220d8b, + 0x223b8a, + 0x2293c5, + 0x5960f7c2, + 0x2c60c7, + 0x59a2a9c8, + 0x3d6987, + 0x2c8445, + 0x34678a, + 0x3102, + 0x27b24b, + 0x27f0ca, + 0x24a9c6, + 0x207683, + 0x2aee0d, + 0x3ade4c, + 0x3dcb8d, + 0x232985, + 0x27bf05, + 0x332f87, + 0x20a3c9, + 0x210dc6, + 0x2501c5, + 0x2ea2c8, + 0x26dd43, + 0x2f9748, + 0x26dd48, + 0x2c71c7, + 0x36aac8, + 0x3adc49, + 0x2d0f07, + 0x2c58c7, + 0x25d108, + 0x29b744, + 0x29b747, + 0x30d4c8, + 0x35ee06, + 0x37c6cf, + 0x26d507, + 0x35a506, + 0x2dc885, + 0x222203, + 0x248b47, + 0x38b103, + 0x24e006, + 0x24fe06, + 0x251286, + 0x295605, + 0x266703, + 0x395408, + 0x38de49, + 0x39da0b, + 0x251408, + 0x252685, + 0x253d85, + 0x59eb1d82, + 0x2843c9, + 0x221c07, + 0x25afc5, + 0x258b87, + 0x25a346, + 0x383485, + 0x25b38b, + 0x25dbc4, + 0x262d05, + 0x262e47, + 0x279746, + 0x279b85, + 0x286d47, + 0x287947, + 0x2d7f44, + 0x28cf4a, + 0x28ed48, + 0x244dc9, + 0x36a0c5, + 0x2b42c6, + 0x2f688a, + 0x267246, + 0x22e407, + 0x2c954d, + 0x2a5249, + 0x36b2c5, + 0x321d07, + 0x32e908, + 0x330008, + 0x3491c7, + 0x367306, + 0x2195c7, + 0x24f243, + 0x309984, + 0x380f85, + 0x3aa087, + 0x3afcc9, + 0x226488, + 0x22e305, + 0x249204, + 0x25dd85, + 0x266acd, + 0x200cc2, + 0x2b71c6, + 0x259b86, + 0x2f8d0a, + 0x394dc6, + 0x39b485, + 0x2c5605, + 0x2c5607, + 0x3a780c, + 0x27714a, + 0x290506, + 0x202fc5, + 0x26dc86, + 0x290687, + 0x292e86, + 0x29550c, + 0x2216c9, + 0x5a3cf547, + 0x2971c5, + 0x2971c6, + 0x297c08, + 0x2bcd85, + 0x2a5985, + 0x2a6c88, + 0x2a6e8a, + 0x5a67bc02, + 0x5aa05942, + 0x2fd185, + 0x26c143, + 0x22bf08, + 0x20bbc3, + 0x2a7104, + 0x2f408b, + 0x3ce688, + 0x31be08, + 0x5af26609, + 0x2ad349, + 0x2adb06, + 0x2ae808, + 0x2aea09, + 0x2afd86, + 0x2aff05, + 0x249346, + 0x2b0749, + 0x2ba387, + 0x2fdf06, + 0x21d0c7, + 0x36c987, + 0x21fac4, + 0x5b338c49, + 0x367bc8, + 0x3d1448, + 0x239f07, + 0x2ca906, + 0x204a09, + 0x250047, + 0x36744a, + 0x37b0c8, + 0x20cf87, + 0x20ed46, + 0x28c74a, + 0x2ff188, + 0x2e68c5, + 0x227385, + 0x355107, + 0x311c49, + 0x3179cb, + 0x36dec8, + 0x321689, + 0x251b47, + 0x2bc08c, + 0x2bc94c, + 0x2bcc4a, + 0x2bcecc, + 0x2c4cc8, + 0x2c4ec8, + 0x2c50c4, + 0x2c6949, + 0x2c6b89, + 0x2c6dca, + 0x2c7049, + 0x2c7387, + 0x3d6d4c, + 0x20d986, + 0x2c8f08, + 0x267306, + 0x3a35c6, + 0x36b1c7, + 0x36bd08, + 0x206b4b, + 0x3d6847, + 0x258949, + 0x27e309, + 0x2845c7, + 0x2c5384, + 0x200fc7, + 0x2fe8c6, + 0x20e3c6, + 0x2f85c5, + 0x3d8108, + 0x295e44, + 0x295e46, + 0x27700b, + 0x371489, + 0x23aec6, + 0x2aa709, + 0x20b8c6, + 0x201f88, + 0x20fb43, + 0x300785, + 0x21bdc9, + 0x221d85, + 0x353404, + 0x2785c6, + 0x237485, + 0x2553c6, + 0x310047, + 0x34a406, + 0x22c7cb, + 0x36b9c7, + 0x247c46, + 0x2dcd86, + 0x22ff46, + 0x292c49, + 0x2f200a, + 0x2bdec5, + 0x3a900d, + 0x2a6f86, + 0x2f4986, + 0x2f1786, + 0x2303c5, + 0x2e4b07, + 0x225dc7, + 0x275c0e, + 0x211d83, + 0x2ca8c9, + 0x333449, + 0x22fbc7, + 0x26bc07, + 0x2a0b85, + 0x22e8c5, + 0x5b73174f, + 0x2d0987, + 0x2d0b48, + 0x2d2284, + 0x2d2586, + 0x5ba46b02, + 0x2d77c6, + 0x2da646, + 0x33360e, + 0x2f958a, + 0x3d1cc6, + 0x21ae4a, + 0x3dc989, + 0x23e105, + 0x3b21c8, + 0x31e486, + 0x29e0c8, + 0x2fbb08, + 0x27ad0b, + 0x3060c5, + 0x271888, + 0x3ce24c, + 0x2c8307, + 0x250b06, + 0x2fa0c8, + 0x206808, + 0x5be4dc02, + 0x20634b, + 0x3d9c89, + 0x28d809, + 0x21bc47, + 0x3a8d48, + 0x5c39b048, + 0x20c8cb, + 0x3204c9, + 0x25c24d, + 0x320ec8, + 0x28c948, + 0x5c601e02, + 0x31fc44, + 0x5ca28002, + 0x3b1fc6, + 0x5ce06ec2, + 0x2ee48a, + 0x2a5806, + 0x26c9c8, + 0x3c11c8, + 0x255d06, + 0x32d286, + 0x2f7686, + 0x2a5e85, + 0x23a104, + 0x5d229a44, + 0x357fc6, + 0x298687, + 0x5d60d5c7, + 0x38d08b, + 0x3d6b89, + 0x27bf4a, + 0x2039c4, 0x2c5748, - 0x2c5948, - 0x2c5b44, - 0x2c74c9, - 0x2c7709, - 0x2c794a, - 0x2c7bc9, - 0x2c7f07, - 0x3d5b4c, - 0x20ca46, - 0x2c9508, - 0x268486, - 0x3a3386, - 0x341c47, - 0x21fbc8, - 0x20f74b, - 0x3d5647, - 0x25a7c9, - 0x285189, - 0x355c07, - 0x2c5e04, - 0x2fa147, - 0x20a286, - 0x20ddc6, - 0x2fdf85, - 0x2cec48, - 0x294884, - 0x294886, - 0x275f8b, - 0x2ae009, - 0x250ac6, - 0x357289, - 0x20b146, - 0x204048, - 0x218983, - 0x303585, - 0x222a89, - 0x224805, - 0x37e504, - 0x277486, - 0x23c705, - 0x257bc6, - 0x31a607, - 0x346dc6, - 0x22bb0b, - 0x249887, - 0x2554c6, - 0x210046, - 0x22dfc6, - 0x28c389, - 0x2fa54a, - 0x2be6c5, - 0x3b518d, - 0x2a7206, - 0x38fac6, - 0x2cb806, - 0x2f7805, - 0x2ea2c7, - 0x22a587, - 0x273bce, - 0x205e03, - 0x2caec9, - 0x245009, - 0x22dc47, - 0x226247, - 0x237d85, - 0x210205, - 0x5a600c0f, - 0x2d2287, - 0x2d2448, - 0x2d3144, - 0x2d3586, - 0x5aa477c2, - 0x2d9b06, - 0x2dc3c6, - 0x2451ce, - 0x30100a, - 0x2b6546, - 0x21ba0a, - 0x3c2989, - 0x234045, - 0x305488, - 0x31d886, - 0x29d808, - 0x329788, - 0x27958b, - 0x30fec5, - 0x26f308, - 0x3c6e8c, - 0x2bddc7, - 0x252806, - 0x2e5888, - 0x20f408, - 0x5ae4fd42, - 0x20ef4b, - 0x3d7689, - 0x28d5c9, - 0x21b707, - 0x3c4f88, - 0x5b397048, - 0x20e7cb, - 0x37f749, - 0x25db4d, - 0x3295c8, - 0x2ad7c8, - 0x5b601642, - 0x3cbec4, - 0x5ba2ebc2, - 0x3b0a06, - 0x5be01102, - 0x2f500a, - 0x2ab406, - 0x238348, - 0x3be948, - 0x248ec6, - 0x337106, - 0x2fd1c6, - 0x2a6a45, - 0x23a1c4, - 0x5c238884, - 0x355586, - 0x296e47, - 0x5c60c687, - 0x26c08b, - 0x3d5989, - 0x27a7ca, - 0x206944, - 0x2c61c8, - 0x34b54d, - 0x2f5b89, - 0x2f5dc8, - 0x2f6049, - 0x2f7dc4, - 0x247344, - 0x25ebc5, - 0x36824b, - 0x3c7246, - 0x3553c5, - 0x2eb909, - 0x3100c8, - 0x238a04, - 0x2175c9, - 0x237605, - 0x2c2b08, - 0x2c6a07, - 0x37f388, - 0x284846, - 0x3d1ec7, - 0x2e1049, - 0x3cc909, - 0x3c7a85, - 0x36ff45, - 0x5ca12cc2, - 0x347904, - 0x217fc5, - 0x30fcc6, - 0x37a1c5, - 0x2edec7, - 0x299f85, - 0x277f84, - 0x335e06, - 0x2573c7, - 0x2ff786, - 0x321d85, - 0x210608, - 0x310645, - 0x214887, - 0x221109, - 0x2ae14a, - 0x22b147, - 0x22b14c, - 0x22c306, - 0x23ce09, - 0x37ff05, - 0x38ad48, - 0x209f43, - 0x20ab85, - 0x209f45, - 0x303b07, - 0x5ce03542, - 0x2f0187, - 0x2e7f46, - 0x3ce746, - 0x2eb246, - 0x20f346, - 0x2ddf88, - 0x31f2c5, - 0x358e47, - 0x358e4d, - 0x203843, - 0x20cf05, - 0x26fbc7, - 0x2f04c8, - 0x26f785, - 0x213e88, - 0x39c646, - 0x2df047, - 0x2c9445, - 0x30ff46, - 0x391985, - 0x21504a, - 0x2f9406, - 0x282187, - 0x31e445, - 0x3a6707, - 0x305d84, - 0x37e486, - 0x3053c5, - 0x216bcb, - 0x20a109, - 0x24df0a, - 0x3c7b08, - 0x348348, - 0x30d40c, - 0x30ef47, - 0x311dc8, - 0x313f88, - 0x314d05, - 0x350f0a, - 0x352a09, - 0x5d202702, - 0x3c0806, - 0x246dc4, - 0x246dc9, - 0x270a09, - 0x277987, - 0x2b4907, - 0x3562c9, - 0x2d1b88, - 0x2d1b8f, - 0x223686, - 0x2deb4b, - 0x2669c5, - 0x2669c7, - 0x374c49, - 0x217546, - 0x217547, - 0x2e3185, - 0x230f84, - 0x267586, - 0x221684, - 0x2b5287, - 0x2b3688, - 0x5d703308, - 0x304885, - 0x3049c7, - 0x32ac89, - 0x20ed04, - 0x240588, - 0x5da72b88, - 0x2d88c4, - 0x347e48, - 0x372644, - 0x3b5489, - 0x219f85, - 0x5de1be02, - 0x2236c5, - 0x2e38c5, - 0x202b48, - 0x234347, - 0x5e2008c2, - 0x2389c5, - 0x2d76c6, - 0x232e06, - 0x3478c8, - 0x34ab88, - 0x37a186, - 0x37ae06, - 0x321489, - 0x3ce686, - 0x2195cb, - 0x31f585, - 0x2a8046, - 0x2755c8, - 0x3333c6, - 0x39ec86, - 0x21434a, - 0x2abf8a, - 0x273305, - 0x30dcc7, - 0x2f33c6, - 0x5e606842, - 0x26fd07, - 0x25e345, - 0x2fc384, - 0x2fc385, - 0x206846, - 0x271847, - 0x21c9c5, - 0x21fc44, - 0x2d39c8, - 0x39ed45, - 0x3c9707, - 0x3d4145, - 0x214f85, - 0x2ae9c4, - 0x2e6ac9, - 0x2f8e88, - 0x23a946, - 0x3b7ec6, - 0x3cae86, - 0x5eb0f4c8, - 0x30f6c7, - 0x31174d, - 0x312c4c, - 0x313249, - 0x313489, - 0x5ef73c82, - 0x3d2fc3, - 0x20a343, - 0x20a345, - 0x3a9c0a, - 0x33fbc6, - 0x24e305, - 0x31af04, - 0x31af0b, - 0x3340cc, - 0x33534c, - 0x335655, - 0x337b4d, - 0x33964f, - 0x339a12, - 0x339e8f, - 0x33a252, - 0x33a6d3, - 0x33ab8d, - 0x33b14d, - 0x33b4ce, - 0x33ba4e, - 0x33c78c, - 0x33cb4c, - 0x33cf8b, - 0x33da0e, - 0x33e312, - 0x33f98c, - 0x33fe90, - 0x34ba52, - 0x34c6cc, - 0x34cd8d, - 0x34d0cc, - 0x34f611, - 0x35088d, - 0x352c4d, - 0x35324a, - 0x3534cc, - 0x3547cc, - 0x3550cc, - 0x35688c, - 0x35a253, - 0x35a8d0, - 0x35acd0, - 0x35b64d, - 0x35bc4c, - 0x35d6c9, - 0x35ef4d, - 0x35f293, - 0x361fd1, - 0x3627d3, - 0x363c8f, - 0x36404c, - 0x36434f, - 0x36470d, - 0x364d0f, - 0x3650d0, - 0x365b4e, - 0x369c8e, - 0x36b490, - 0x36bf4d, - 0x36c8ce, - 0x36cc4c, - 0x36dc13, - 0x37028e, - 0x370910, - 0x370d11, - 0x37114f, - 0x371513, - 0x37380d, - 0x373b4f, - 0x373f0e, - 0x374490, - 0x374889, - 0x3761d0, - 0x3767cf, - 0x376e4f, - 0x377212, - 0x37940e, - 0x379e0d, - 0x37a54d, - 0x37a88d, - 0x37b80d, - 0x37bb4d, - 0x37be90, - 0x37c28b, - 0x37cf0c, - 0x37d28c, - 0x37d88c, - 0x37db8e, - 0x38b4d0, - 0x38ddd2, - 0x38e24b, - 0x38e58e, - 0x38e90e, - 0x38f18e, - 0x38f60b, - 0x5f38fc56, - 0x390acd, - 0x390f54, - 0x391c4d, - 0x3939d5, - 0x39554d, - 0x395ecf, - 0x39654f, - 0x39a80f, - 0x39abce, - 0x39b14d, - 0x39cc91, - 0x3a2b4c, - 0x3a2e4c, - 0x3a314b, - 0x3a370c, - 0x3a3d8f, - 0x3a4152, - 0x3a480d, - 0x3a590c, - 0x3a68cc, - 0x3a6bcd, - 0x3a6f0f, - 0x3a72ce, - 0x3a98cc, - 0x3a9e8d, - 0x3aa1cb, - 0x3aaa8c, - 0x3ab38d, - 0x3ab6ce, - 0x3aba49, - 0x3ad093, - 0x3ad7cd, - 0x3adecd, - 0x3ae4cc, - 0x3ae94e, - 0x3af04f, - 0x3af40c, - 0x3af70d, - 0x3afa4f, - 0x3afe0c, - 0x3b0c4c, - 0x3b110c, - 0x3b140c, - 0x3b1acd, - 0x3b1e12, - 0x3b2b8c, - 0x3b2e8c, - 0x3b3191, - 0x3b35cf, - 0x3b398f, - 0x3b3d53, - 0x3b5e0e, - 0x3b618f, - 0x3b654c, - 0x5f7b688e, - 0x3b6c0f, - 0x3b6fd6, + 0x2fdccd, + 0x2efb09, + 0x2efd48, + 0x2effc9, + 0x2f2484, + 0x246684, + 0x39f245, + 0x36988b, + 0x3ce606, + 0x357e05, + 0x2dc089, + 0x35aac8, + 0x229bc4, + 0x215f49, + 0x3d2685, + 0x2c2248, + 0x2c5f87, + 0x320108, + 0x283c86, + 0x3b9b07, + 0x2df3c9, + 0x368389, + 0x207fc5, + 0x2af585, + 0x5da0a202, + 0x3138c4, + 0x212e85, + 0x305ec6, + 0x312845, + 0x2bac47, + 0x2eedc5, + 0x21dd04, + 0x3447c6, + 0x250247, + 0x2331c6, + 0x318745, + 0x20b208, + 0x28e305, + 0x20e8c7, + 0x21f309, + 0x3715ca, + 0x226987, + 0x22698c, + 0x227086, + 0x23f649, + 0x3826c5, + 0x38fc08, + 0x225003, + 0x2ed345, + 0x2fe585, + 0x27da07, + 0x5de01482, + 0x2ea607, + 0x2e5b06, + 0x37e946, + 0x2e9086, + 0x206746, + 0x2fed88, + 0x316445, + 0x35a5c7, + 0x35a5cd, + 0x201783, + 0x20de45, + 0x272147, + 0x2ea948, + 0x271d05, + 0x215048, + 0x39fe46, + 0x2ddb07, + 0x2c8e45, + 0x306146, + 0x395985, + 0x210b8a, + 0x2f3ac6, + 0x26e607, + 0x2d0505, + 0x383d47, + 0x3b2ac4, + 0x353386, + 0x3b2105, + 0x2177cb, + 0x2fe749, + 0x24e9ca, + 0x208048, + 0x304588, + 0x313f4c, + 0x382c47, + 0x308288, + 0x309f88, + 0x30f645, + 0x354eca, + 0x356b89, + 0x5e202302, + 0x3c2a06, + 0x227bc4, + 0x2bd2c9, + 0x3050c9, + 0x2769c7, + 0x2ef507, + 0x2b4789, + 0x2d1ec8, + 0x2d1ecf, + 0x219fc6, + 0x2dd60b, + 0x25b885, + 0x25b887, + 0x3794c9, + 0x2108c6, + 0x215ec7, + 0x2e0745, + 0x232884, + 0x380a46, + 0x220f44, + 0x2b6587, + 0x2b8e88, + 0x5e700508, + 0x300c85, + 0x300dc7, + 0x323209, + 0x206104, + 0x241848, + 0x5ea696c8, + 0x2d6844, + 0x2e6308, + 0x2fba44, + 0x3299c9, + 0x3a9305, + 0x5ee1a602, + 0x21a005, + 0x2e5145, + 0x32fe48, + 0x235ac7, + 0x5f2008c2, + 0x229b85, + 0x2d5646, + 0x233306, + 0x313888, + 0x315108, + 0x312806, + 0x3414c6, + 0x3dab09, + 0x37e886, + 0x21078b, + 0x316705, + 0x2a8606, + 0x3be9c8, + 0x335b86, + 0x339f46, + 0x21550a, + 0x20a80a, + 0x25f505, + 0x391307, + 0x2f5f46, + 0x5f6038c2, + 0x272287, + 0x23be05, + 0x2f6804, + 0x2f6805, + 0x2038c6, + 0x274347, + 0x21ca05, + 0x20a984, + 0x2d29c8, + 0x33a005, + 0x3c8e07, + 0x3d36c5, + 0x210ac5, + 0x26f1c4, + 0x26f1c9, + 0x2f3548, + 0x23a886, + 0x3bad86, + 0x28c486, + 0x5fb056c8, + 0x3058c7, + 0x30670d, + 0x306f4c, + 0x307549, + 0x307789, + 0x5ff77902, + 0x3d1203, + 0x2010c3, + 0x2fe985, + 0x3aa18a, + 0x341386, + 0x244545, + 0x311304, + 0x31130b, + 0x3344cc, + 0x334dcc, + 0x3350d5, + 0x335fcd, + 0x33b44f, + 0x33b812, + 0x33bc8f, + 0x33c052, + 0x33c4d3, + 0x33c98d, + 0x33cf4d, + 0x33d2ce, + 0x33d84e, + 0x33df4c, + 0x33e30c, + 0x33e74b, + 0x33f1ce, + 0x33fad2, + 0x34114c, + 0x341810, + 0x34d412, + 0x34e4cc, + 0x34eb8d, + 0x34eecc, + 0x3514d1, + 0x352a0d, + 0x35584d, + 0x355e4a, + 0x3560cc, + 0x35758c, + 0x357b0c, + 0x3588cc, + 0x35bd53, + 0x35c3d0, + 0x35c7d0, + 0x35d14d, + 0x35d74c, + 0x35e4c9, + 0x360a4d, + 0x360d93, + 0x362211, + 0x362a13, + 0x363ecf, + 0x36428c, + 0x36458f, + 0x36494d, + 0x364f4f, + 0x365310, + 0x365d8e, + 0x36d30e, + 0x36e510, + 0x36efcd, + 0x36f94e, + 0x36fccc, + 0x371853, + 0x3737ce, + 0x373e50, + 0x374251, + 0x37468f, + 0x374a53, + 0x37748d, + 0x3777cf, + 0x377b8e, + 0x378110, + 0x378509, + 0x379710, + 0x379d0f, + 0x37a38f, + 0x37a752, + 0x37ce4e, + 0x37d84d, + 0x37dfcd, + 0x37e30d, + 0x37f7cd, + 0x37fb0d, + 0x37fe50, + 0x38024b, + 0x380d4c, + 0x3810cc, + 0x3816cc, + 0x3819ce, + 0x390510, + 0x392012, + 0x39248b, + 0x3927ce, + 0x392b4e, + 0x3933ce, + 0x39384b, + 0x60393f56, + 0x394acd, + 0x394f54, + 0x395c4d, + 0x397995, + 0x39950d, + 0x399e8f, + 0x39a54f, + 0x39dccf, + 0x39e08e, + 0x39e60d, + 0x3a0491, + 0x3a2d8c, + 0x3a308c, + 0x3a338b, + 0x3a394c, + 0x3a3fcf, + 0x3a4392, + 0x3a4a4d, + 0x3a5b4c, + 0x3a684c, + 0x3a6b4d, + 0x3a6e8f, + 0x3a724e, + 0x3a9e4c, + 0x3aa40d, + 0x3aa74b, + 0x3ab00c, + 0x3ab90d, + 0x3abc4e, + 0x3abfc9, + 0x3ad753, + 0x3aed8d, + 0x3af48d, + 0x3afa8c, + 0x3aff0e, + 0x3b060f, + 0x3b09cc, + 0x3b0ccd, + 0x3b100f, + 0x3b13cc, + 0x3b2d0c, + 0x3b31cc, + 0x3b34cc, + 0x3b3b8d, + 0x3b3ed2, + 0x3b52cc, + 0x3b55cc, + 0x3b58d1, + 0x3b5d0f, + 0x3b60cf, + 0x3b6493, + 0x3b724e, + 0x3b75cf, + 0x3b798c, + 0x607b7cce, + 0x3b804f, + 0x3b8416, 0x3b9f92, - 0x3bc7cc, - 0x3bd60f, - 0x3bdc8d, - 0x3c878f, - 0x3c8b4c, - 0x3c8e4d, - 0x3c918d, - 0x3caa4e, - 0x3cdecc, - 0x3d044c, - 0x3d0750, - 0x3d2351, - 0x3d278b, - 0x3d2bcc, - 0x3d2ece, - 0x3d4591, - 0x3d49ce, - 0x3d4d4d, - 0x3d894b, - 0x3d924f, - 0x3d9e54, - 0x2068c2, - 0x2068c2, - 0x202e03, - 0x2068c2, - 0x202e03, - 0x2068c2, - 0x20c682, - 0x24a905, - 0x3d428c, - 0x2068c2, - 0x2068c2, - 0x20c682, - 0x2068c2, - 0x296a45, - 0x2ae145, - 0x2068c2, - 0x2068c2, - 0x2010c2, - 0x296a45, - 0x338309, - 0x361ccc, - 0x2068c2, - 0x2068c2, - 0x2068c2, - 0x2068c2, - 0x24a905, - 0x2068c2, - 0x2068c2, - 0x2068c2, - 0x2068c2, - 0x2010c2, - 0x338309, - 0x2068c2, - 0x2068c2, - 0x2068c2, - 0x2ae145, - 0x2068c2, - 0x2ae145, - 0x361ccc, - 0x3d428c, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x206b43, - 0x23cf83, - 0x60314887, - 0x1c618f, - 0x24c8, - 0x7b684, - 0x13c3, - 0x1a20c8, - 0x7c44, + 0x3bcc0c, + 0x3befcf, + 0x3bf64d, + 0x3c7e8f, + 0x3c824c, + 0x3c854d, + 0x3c888d, + 0x3c9f0e, + 0x3caa4c, + 0x3cd48c, + 0x3cd790, + 0x3d0591, + 0x3d09cb, + 0x3d0e0c, + 0x3d110e, + 0x3d3b11, + 0x3d3f4e, + 0x3d42cd, + 0x3d830b, + 0x3d8c0f, + 0x3d95d4, + 0x203942, + 0x203942, + 0x226a83, + 0x203942, + 0x226a83, + 0x203942, + 0x207a82, + 0x249385, + 0x3d380c, + 0x203942, + 0x203942, + 0x207a82, + 0x203942, + 0x298285, + 0x3715c5, + 0x203942, + 0x203942, + 0x209002, + 0x298285, + 0x336789, + 0x361f0c, + 0x203942, + 0x203942, + 0x203942, + 0x203942, + 0x249385, + 0x203942, + 0x203942, + 0x203942, + 0x203942, + 0x209002, + 0x336789, + 0x203942, + 0x203942, + 0x203942, + 0x3715c5, + 0x203942, + 0x3715c5, + 0x361f0c, + 0x3d380c, + 0x24af03, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x61309b07, + 0x1c780f, + 0x131308, + 0x74f84, + 0x4783, + 0x1a2108, + 0x5184, 0x2000c2, - 0x60a02782, - 0x23fec3, - 0x250604, - 0x204183, - 0x3dc504, - 0x22fac6, - 0x20ad83, - 0x30e184, - 0x24d985, - 0x205e03, - 0x206b43, - 0x6df83, - 0x23cf83, - 0x21d60a, - 0x259b06, - 0x38ec8c, - 0xa14c8, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x22a243, - 0x2dc3c6, - 0x206b43, - 0x23cf83, - 0x213c43, - 0x2fe03, + 0x61a03102, + 0x241183, + 0x2539c4, + 0x2020c3, + 0x2d4704, + 0x231b06, + 0x3c6f83, + 0x3cb504, + 0x25f205, + 0x211d83, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0x21d64a, + 0x254c06, + 0x392ecc, 0xa7c88, - 0x6157eac5, - 0x4b8c7, - 0x12dac5, - 0x178449, - 0xdcc2, - 0x6237e2c5, - 0x12dac5, - 0x2afc7, - 0x6da08, - 0x820e, - 0x8abd2, - 0x11f94b, - 0x1143c6, - 0x6268d145, - 0x62a8d14c, - 0x5e4c7, - 0x14c47, - 0x1a0eca, - 0x3b650, - 0x173345, - 0x10cd0b, - 0x6c648, - 0x3fbc7, - 0x19ee0b, - 0x80b89, - 0x4aac7, - 0x1a0047, - 0xe1ac7, - 0x35186, - 0x18b08, - 0x63029f46, - 0x49ec7, - 0x15c646, - 0x6c2cd, - 0x1a0890, - 0x634758c2, - 0x5d88, - 0x3c010, - 0x1818cc, - 0x63b89fcd, - 0x5d348, - 0x5d7cb, - 0x6ad07, - 0x16a549, - 0x59706, - 0x965c8, - 0x7102, - 0x8898a, - 0xde307, - 0x1cc607, - 0xa8549, - 0xaa8c8, - 0x1b8e85, - 0x18bb06, - 0x1c4d06, - 0xf6cce, - 0x23b4e, - 0xa9f4f, - 0xe4e09, - 0x504c9, - 0x8850b, - 0xa224f, - 0xc334c, - 0xbb64b, - 0xe0ac8, - 0x144707, - 0x166308, - 0x18da0b, - 0x194d8c, - 0x19bd4c, - 0x1a3a8c, - 0xafccd, - 0x17f8c8, - 0xefdc2, - 0x191789, - 0xf9708, - 0x1921cb, - 0xcb106, - 0xd6f8b, - 0x13de4b, - 0xe28ca, - 0xe3485, - 0xe9fd0, - 0xec646, - 0x12e406, - 0x45585, - 0x1667c7, - 0xfd6c8, - 0xf1407, - 0xf16c7, - 0x1c6647, - 0x1b084a, - 0xa134a, - 0x5bac6, - 0x94ecd, - 0x49f88, - 0x115f88, - 0xae909, - 0xbacc5, - 0x1aed4c, - 0xafecb, - 0x10d704, - 0x10f109, - 0x10f346, - 0x159546, - 0x1b4886, - 0x7d82, - 0xec046, - 0x10b9cb, - 0x11d447, - 0xa842, - 0xcd9c5, - 0x26c44, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x225a83, + 0x2da646, + 0x20ce83, + 0x23f7c3, + 0x214e03, + 0x31e43, + 0xa8248, + 0x625bdb45, + 0x49d07, + 0x129245, + 0x187409, + 0xe2c2, + 0x1b448a, + 0x63383985, + 0x129245, + 0x26807, + 0x70a88, + 0x574e, + 0x8a7d2, + 0x116acb, + 0x109646, + 0x6368d385, + 0x63a8d38c, + 0x16b647, + 0xe747, + 0x14f64a, + 0x3dbd0, + 0x16cb05, + 0x10404b, + 0x18d648, + 0x39dc7, + 0x13a0cb, + 0x35309, + 0x49547, + 0x1385c7, + 0x1a99c7, + 0x36906, + 0xfcc8, + 0x64025786, + 0x18fdc7, + 0x146086, + 0x18d2cd, + 0x138e10, + 0x64469102, + 0x11d08, + 0x40cd0, + 0x18468c, + 0x64b8edcd, + 0x5ba48, + 0x5becb, + 0x6b1c7, + 0x17b589, + 0x57b06, + 0x97e08, + 0x5ce02, + 0x8268a, + 0x2c287, + 0x126bc7, + 0xa8c49, + 0xac2c8, + 0x34c5, + 0x190b46, + 0x1a8ac6, + 0xf0c4e, + 0x1b20e, + 0x2d28f, + 0x6d309, + 0x53889, + 0x8220b, + 0x94b4f, + 0xb0b0c, + 0xbb94b, + 0xdee48, + 0x110647, + 0x15ddc8, + 0x191c4b, + 0x198d4c, + 0x19f54c, + 0x1a3ccc, + 0xb138d, + 0x120648, + 0xea082, + 0x195789, + 0xf3dc8, + 0x1961cb, + 0xcab06, + 0xd4f4b, + 0x13f60b, + 0xdfe8a, + 0xe0a45, + 0xe4810, + 0xe5f86, + 0x129e06, + 0x1339c5, + 0x930c7, + 0xf7d08, + 0xeb887, + 0xebb47, + 0x1c7cc7, + 0xbf9c6, + 0x1b1e0a, + 0xa7b0a, + 0x1c6b46, + 0xab84d, + 0x18fe88, + 0x10b488, + 0xd6ec9, + 0xbaf85, + 0x1b030c, + 0xb158b, + 0x190d44, + 0x105309, + 0x105546, + 0x4ab06, + 0x1b9006, + 0x4cc2, + 0xfd986, + 0x1762cb, + 0x111e87, + 0x8c42, + 0xcc705, + 0x22f04, 0x101, - 0x568c3, - 0x62e81606, - 0x96943, + 0x54283, + 0x63e6c306, + 0x98183, 0x382, - 0x29144, - 0xb02, - 0x41844, + 0x22b04, + 0xac2, + 0x50784, 0x882, - 0x2202, - 0x2c42, - 0x25a42, - 0x5cc2, - 0x8d142, - 0x14c2, - 0xd5e42, - 0x36d82, - 0x37982, - 0x2942, - 0x52282, - 0x33743, + 0x4602, + 0x19c2, + 0x1c342, + 0x7982, + 0x8d382, + 0xd42, + 0x291c2, + 0x38142, + 0x24502, + 0x7682, + 0x50002, + 0x34e83, 0x942, - 0x1242, - 0x19d02, - 0xe282, + 0x1bc2, + 0x143c2, + 0x8142, 0x642, - 0x320c2, - 0x373c2, - 0x3d82, - 0x5e42, + 0x33702, + 0x5dc2, + 0x1cc2, + 0xf42, 0x5c2, - 0x19e43, - 0x1b82, - 0x6102, - 0x4d442, - 0x53a42, - 0xb42, - 0x8002, - 0xf1c2, - 0xdf302, - 0x24c2, - 0x1582, - 0x6cec2, - 0x45ec2, - 0x6b43, + 0x14503, + 0x1742, + 0x51c2, + 0x4b4c2, + 0x51b42, + 0xe942, + 0x5542, + 0x65c2, + 0x30c2, + 0x5982, + 0x127e02, + 0x6ff42, + 0x3c9c2, + 0xce83, 0x602, - 0x4fd42, - 0x13c2, - 0xcc82, - 0x1c7a05, - 0x6a82, - 0x41f42, - 0x3c883, + 0x4dc02, + 0x2f42, + 0xdbc2, + 0x7f45, + 0x7702, + 0x3542, + 0x3e903, 0x682, - 0x16f82, - 0x1bc2, - 0x37c2, - 0x3842, + 0x129c2, + 0x5c82, + 0x1702, + 0x1782, 0x8c2, - 0xd2c2, - 0x7d82, - 0x5f85, - 0x63e0c682, - 0x642cfe83, - 0x20c3, - 0x6460c682, - 0x20c3, - 0x83cc7, - 0x20c443, + 0x13602, + 0x4cc2, + 0xe745, + 0x64e07a82, + 0x652cc0c3, + 0x31643, + 0x65607a82, + 0x31643, + 0x83107, + 0x20b7c3, 0x2000c2, - 0x22d7c3, - 0x233743, - 0x228843, + 0x22f743, + 0x234e83, + 0x20d343, 0x2005c3, - 0x22a243, - 0x206b43, - 0x2013c3, - 0x23cf83, - 0x296983, - 0xfc105, - 0x1083, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x228843, - 0x205e03, - 0x206b43, - 0x2013c3, - 0x6df83, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, + 0x225a83, + 0x20ce83, + 0x204783, + 0x23f7c3, + 0x2981c3, + 0xf6585, + 0xd103, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x20d343, + 0x211d83, + 0x20ce83, + 0x204783, + 0x71003, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, 0x200181, - 0x205e03, - 0x206b43, - 0x251ac3, - 0x23cf83, - 0x10c9c4, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x205d83, - 0x228843, - 0x251383, - 0x22f503, - 0x2ab3c3, - 0x249743, - 0x220583, - 0x222884, - 0x206b43, - 0x23cf83, - 0x207b83, - 0x201844, - 0x2534c3, - 0xa683, - 0x3c38c3, - 0x32a148, - 0x2ad604, + 0x211d83, + 0x20ce83, + 0x22c483, + 0x23f7c3, + 0x177384, + 0x24af03, + 0x22f743, + 0x234e83, + 0x211d03, + 0x20d343, + 0x35b003, + 0x207c03, + 0x2a57c3, + 0x228c43, + 0x224943, + 0x221b84, + 0x20ce83, + 0x23f7c3, + 0x2050c3, + 0x330684, + 0x22cf03, + 0x1c183, + 0x3c5243, + 0x3226c8, + 0x28c784, 0x20020a, - 0x250846, - 0x12aa84, - 0x383407, - 0x21dd8a, - 0x223549, - 0x3ad507, - 0x3b41ca, - 0x24ce83, - 0x3009cb, - 0x2d5809, - 0x2d86c5, - 0x3b0f47, - 0x2782, - 0x22d7c3, - 0x237987, - 0x2e5505, - 0x2c5cc9, - 0x233743, - 0x308386, - 0x2c5103, - 0xa1c3, - 0x119746, - 0x10b206, - 0xad07, - 0x221986, - 0x225a85, - 0x3d7547, - 0x316747, - 0x67220583, - 0x34c907, - 0x3b4983, - 0x20be85, - 0x222884, - 0x26ef88, - 0x379b0c, - 0x2b12c5, - 0x2a59c6, - 0x237847, - 0x20a647, - 0x2660c7, - 0x270048, - 0x31868f, - 0x223785, - 0x23ffc7, - 0x20d547, - 0x2a74ca, - 0x2eeb89, - 0x322805, - 0x32484a, - 0x130246, - 0xbb147, - 0x2c5185, - 0x38e484, - 0x248e06, - 0xbdfc6, - 0x381b47, - 0x2efcc7, - 0x3dae88, - 0x21a205, - 0x2e5406, - 0x25388, - 0x357005, - 0x1571c6, - 0x23bd85, - 0x28ca84, - 0x2376c7, - 0x2dddca, - 0x255988, - 0x361386, - 0x2a243, - 0x2e43c5, - 0x3291c6, - 0x3d5d86, - 0x245486, - 0x205e03, - 0x3a4a87, - 0x20d4c5, - 0x206b43, - 0x2e2b8d, - 0x2013c3, - 0x3daf88, - 0x219344, - 0x278245, - 0x2a73c6, - 0x394206, - 0x2a7f47, - 0x25da07, - 0x283385, - 0x23cf83, - 0x2e9987, - 0x344809, - 0x36a6c9, - 0x32e64a, - 0x2434c2, - 0x20be44, - 0x2ecbc4, - 0x2efb87, - 0x2f0048, - 0x2f24c9, - 0x20cdc9, - 0x2f3a07, - 0xffc09, - 0x3720c6, - 0xf6a46, - 0x2f7dc4, - 0x2f83ca, - 0x2fb488, - 0x2fd089, - 0x3ac386, - 0x2b5e85, - 0x255848, - 0x2cc48a, - 0x210f43, - 0x2019c6, - 0x2f3b07, - 0x357785, - 0x390485, - 0x239703, - 0x23d804, - 0x226985, - 0x287f07, - 0x2f8fc5, - 0x2eea46, - 0x13c285, - 0x28a243, - 0x2b6609, - 0x27800c, - 0x2b9f4c, - 0x2d6d88, - 0x2a4b47, - 0x306148, - 0x106787, - 0x306fca, - 0x30768b, - 0x2d5948, - 0x394308, - 0x239106, - 0x3cad45, - 0x30a10a, - 0x2cfec5, - 0x21be02, - 0x2c9307, - 0x251646, - 0x375145, - 0x30de89, - 0x206145, - 0x31fec5, - 0x2752c9, - 0x329106, - 0x3ba5c8, - 0x26a183, - 0x209046, - 0x2773c6, - 0x31c485, - 0x31c489, - 0x2f2c09, - 0x27e387, - 0x11d2c4, - 0x31d2c7, - 0x20ccc9, - 0x21df85, - 0x3a2c8, - 0x340ec5, - 0x274b05, - 0x377a09, - 0x2020c2, - 0x2e4884, - 0x203f42, - 0x201b82, - 0x38c145, - 0x32a808, - 0x2bac05, - 0x2c80c3, - 0x2c80c5, - 0x2d9d03, - 0x209002, - 0x302284, - 0x2b69c3, - 0x201002, - 0x3cb604, - 0x2ed143, - 0x204f02, - 0x2bac83, - 0x303a84, - 0x2fd643, - 0x25cfc4, - 0x209482, - 0x213b43, - 0x21bb03, - 0x203002, - 0x308102, - 0x2f2a49, - 0x219082, - 0x28ba04, - 0x202242, - 0x2556c4, - 0x372084, - 0x206f04, - 0x207d82, - 0x238d42, - 0x36ad83, - 0x307443, - 0x237b44, - 0x248804, - 0x2ba344, - 0x2d1544, - 0x2fb643, - 0x2446c3, - 0x3301c4, - 0x31fdc4, - 0x3203c6, - 0x22c202, - 0x2782, - 0x409c3, - 0x202782, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, + 0x23ac46, + 0x123004, + 0x38e307, + 0x21e64a, + 0x219e89, + 0x3b4307, + 0x3b894a, + 0x24af03, + 0x2fd20b, + 0x228b89, + 0x2d6645, + 0x3b3007, + 0x3102, + 0x22f743, + 0x224507, + 0x26e885, + 0x2c5249, + 0x234e83, + 0x375106, + 0x2c4683, + 0xe5b83, + 0x10ed86, + 0x1327c6, + 0x1c6f07, + 0x217d86, + 0x21c385, + 0x3d9b47, + 0x30bcc7, + 0x68224943, + 0x34e707, + 0x3b9103, + 0x20afc5, + 0x221b84, + 0x271508, + 0x37d54c, + 0x2b28c5, + 0x2a53c6, + 0x2243c7, + 0x2e2407, + 0x25f607, + 0x263b48, + 0x30dccf, + 0x21a0c5, + 0x241287, + 0x2085c7, + 0x2a724a, + 0x2ea109, + 0x319ac5, + 0x31b98a, + 0x148f06, + 0xbb447, + 0x2c4705, + 0x3926c4, + 0x255c46, + 0xc8506, + 0x384907, + 0x2e9f87, + 0x36ac88, + 0x218305, + 0x26e786, + 0x225c8, + 0x2aa485, + 0xaa646, + 0x22e585, + 0x26cd44, + 0x3d2747, + 0x2febca, + 0x248108, + 0x32f706, + 0x25a83, + 0x2e1985, + 0x320ac6, + 0x3d6f86, + 0x3338c6, + 0x211d83, + 0x3a4cc7, + 0x208545, + 0x20ce83, + 0x2e014d, + 0x204783, + 0x36ad88, + 0x210504, + 0x279a45, + 0x2a7146, + 0x3981c6, + 0x2a8507, + 0x25c107, + 0x28ba85, + 0x23f7c3, + 0x2e41c7, + 0x310749, + 0x37b709, + 0x32a04a, + 0x23cb02, + 0x20af84, + 0x39a444, + 0x2e9e47, + 0x2ea4c8, + 0x2ec7c9, + 0x20dd09, + 0x2ed507, + 0xfab89, + 0x34b446, + 0xf09c6, + 0x2f2484, + 0x2f2a8a, + 0x2f57c8, + 0x2f7549, + 0x2f7b06, + 0x2b6ec5, + 0x247fc8, + 0x2caf4a, + 0x252c43, + 0x330806, + 0x2ed607, + 0x2aa905, + 0x39c985, + 0x22a8c3, + 0x23bb84, + 0x227345, + 0x287a47, + 0x2f3685, + 0x2f1c46, + 0x1017c5, + 0x289e43, + 0x3d1d89, + 0x27980c, + 0x2b994c, + 0x2d4d48, + 0x2abdc7, + 0x301e48, + 0x102487, + 0x302cca, + 0x30338b, + 0x228cc8, + 0x3982c8, + 0x22a2c6, + 0x28c345, + 0x33db4a, + 0x2cc105, + 0x21a602, + 0x2c8d07, + 0x250e06, + 0x378e85, + 0x3cb209, + 0x2120c5, + 0x31c245, + 0x3be6c9, + 0x320a06, + 0x3c0148, + 0x269f83, + 0x208e06, + 0x278506, + 0x311a45, + 0x311a49, + 0x21de09, + 0x28c0c7, + 0x114944, + 0x314947, + 0x20dc09, + 0x21e845, + 0x3a208, + 0x348a05, + 0x2fb885, + 0x3869c9, + 0x202602, + 0x22cd04, + 0x201e82, + 0x201742, + 0x2fb305, + 0x322d88, + 0x2baec5, + 0x2c7543, + 0x2c7545, + 0x2d79c3, + 0x2075c2, + 0x3dba44, + 0x28e843, + 0x200a82, + 0x3bd804, + 0x2e77c3, + 0x203b02, + 0x2baf43, + 0x2fe504, + 0x2f7c83, + 0x256c84, + 0x205fc2, + 0x214d03, + 0x21af43, + 0x2026c2, + 0x354282, + 0x21dc49, + 0x210242, + 0x28b304, + 0x205e02, + 0x247e44, + 0x34b404, + 0x32ecc4, + 0x204cc2, + 0x229f02, + 0x2dc6c3, + 0x303143, + 0x22e684, + 0x26a004, + 0x2d0384, + 0x2ed784, + 0x314ac3, + 0x245a43, + 0x348e84, + 0x316f44, + 0x317086, + 0x224682, + 0x3102, + 0x41c83, + 0x203102, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, 0x2000c2, - 0x24ce83, - 0x22d7c3, - 0x233743, - 0x208903, - 0x220583, - 0x222884, - 0x2f2d04, - 0x205184, - 0x206b43, - 0x23cf83, - 0x213c43, - 0x2f8984, - 0x32bd43, - 0x2a8fc3, - 0x37a0c4, - 0x340cc6, - 0x218a43, - 0x12dac5, - 0x14c47, - 0x2e6e03, - 0x68a4abc8, - 0x2416c3, - 0x2b3883, - 0x20bec3, - 0x22a243, - 0x35ff85, - 0x1b0f03, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x3410c3, - 0x22f0c3, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x219e43, - 0x206b43, - 0x23b484, - 0x6df83, - 0x23cf83, - 0x21f4c4, - 0x12dac5, - 0x2c1745, - 0x14c47, - 0x202782, - 0x203dc2, + 0x24af03, + 0x22f743, + 0x234e83, + 0x2053c3, + 0x224943, + 0x221b84, + 0x21df04, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x214e03, + 0x2f3044, + 0x324003, + 0x2a96c3, + 0x37db04, + 0x348806, + 0x20fc03, + 0x129245, + 0xe747, + 0x26f503, + 0x69a49648, + 0x250603, + 0x2b5943, + 0x20b003, + 0x225a83, + 0x3542c5, + 0x1b2fc3, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x207703, + 0x231283, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x214503, + 0x20ce83, + 0x281184, + 0x71003, + 0x23f7c3, + 0x2b7ec4, + 0x129245, + 0x2c1185, + 0xe747, + 0x203102, + 0x201d02, 0x200382, - 0x202642, - 0x13c3, + 0x208ac2, + 0x4783, 0x2003c2, - 0x3304, - 0x22d7c3, - 0x236204, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x205184, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x202003, - 0x241844, - 0xa14c8, - 0x22d7c3, - 0x2013c3, - 0x1083, - 0x14d5c4, - 0x24ec04, - 0xa14c8, - 0x22d7c3, - 0x251184, - 0x222884, - 0x2013c3, - 0x201642, - 0x6df83, - 0x23cf83, - 0x25b583, - 0x3d804, - 0x3da885, - 0x21be02, - 0x3094c3, - 0x131949, - 0xdff06, - 0x109548, + 0x1244, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x202443, + 0x250784, + 0xa7c88, + 0x22f743, + 0x204783, + 0xd103, + 0x14cfc4, + 0x23d544, + 0xa7c88, + 0x22f743, + 0x24f044, + 0x221b84, + 0x204783, + 0x201e02, + 0x71003, + 0x23f7c3, + 0x259703, + 0x3bb84, + 0x207ac5, + 0x21a602, + 0x376243, + 0x127409, + 0xde2c6, + 0x148b08, 0x2000c2, - 0xa14c8, - 0x202782, - 0x233743, - 0x220583, + 0xa7c88, + 0x203102, + 0x234e83, + 0x224943, 0x2005c2, - 0x13c3, - 0x23cf83, - 0x79c2, + 0x4783, + 0x23f7c3, + 0x4f02, 0x82, 0x2000c2, - 0x1b4387, - 0x135b49, - 0x7c303, - 0xa14c8, - 0x25a03, - 0x6c356e87, - 0x2d7c3, - 0x1c0708, - 0x233743, - 0x220583, - 0x3d346, - 0x219e43, - 0x95988, - 0xc4108, - 0x11f086, - 0x205e03, - 0xcf188, - 0xedf43, - 0x6c4e3d46, - 0xea9c5, - 0x33947, - 0x6b43, - 0x4e283, - 0x3cf83, - 0x2102, - 0x19c44a, - 0x4cc3, - 0x18c203, - 0x300204, - 0x11848b, - 0x118a48, - 0x91a82, - 0x1457987, - 0x1530e07, - 0x14c8188, - 0x151e703, - 0x1289cb, - 0x12d947, - 0x6a04, + 0x1b8b07, + 0x142149, + 0x7d6c3, + 0xa7c88, + 0x1c303, + 0x6d34f3c7, + 0x2f743, + 0x1c2908, + 0x234e83, + 0x224943, + 0x3fb86, + 0x214503, + 0x96c08, + 0xc3a48, + 0x116206, + 0x211d83, + 0xcdf88, + 0xbacc3, + 0x6d4e1306, + 0xe5285, + 0x35087, + 0xce83, + 0x444c3, + 0x3f7c3, + 0xda42, + 0x19fc4a, + 0x8283, + 0xfb3c3, + 0x2fca44, + 0x10dacb, + 0x10e088, + 0x91f82, + 0x1455187, + 0x152e787, + 0x14c7608, + 0x1515883, + 0x12708b, + 0xba42, + 0x125c07, + 0x1069c4, 0x2000c2, - 0x202782, - 0x236204, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x22a243, - 0x206b43, - 0x23cf83, - 0x21f4c3, - 0x202003, - 0x2fe03, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x1083, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x22a243, - 0x206b43, - 0x23cf83, - 0x2195c2, + 0x203102, + 0x2375c4, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x225a83, + 0x20ce83, + 0x23f7c3, + 0x228743, + 0x202443, + 0x31e43, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x602, + 0xd103, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x225a83, + 0x20ce83, + 0x23f7c3, + 0x210782, 0x2000c1, 0x2000c2, 0x200201, - 0x339742, - 0xa14c8, - 0x21c745, + 0x33b542, + 0xa7c88, + 0x21c785, 0x200101, - 0x2d7c3, - 0x30944, - 0x200f01, + 0x2f743, + 0x32244, + 0x2015c1, 0x200501, - 0x202401, - 0x24a882, - 0x387184, - 0x24a883, + 0x2014c1, + 0x249302, + 0x38b104, + 0x249303, 0x200041, 0x200801, 0x200181, 0x200701, - 0x37e6c7, - 0x31d9cf, - 0x319886, + 0x3535c7, + 0x31e5cf, + 0x30eec6, 0x2004c1, - 0x34d606, - 0x200c01, + 0x34d006, + 0x200bc1, 0x200581, - 0x3d8b8e, + 0x3d854e, 0x2003c1, - 0x23cf83, - 0x201001, - 0x2e4d05, - 0x202102, - 0x239605, + 0x23f7c3, + 0x200a81, + 0x22d185, + 0x20da42, + 0x22a7c5, 0x200401, 0x200741, 0x2007c1, - 0x21be02, + 0x21a602, 0x200081, - 0x201ec1, - 0x203301, - 0x201081, - 0x20a781, - 0x54389, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x214703, - 0x22d7c3, - 0x220583, - 0x919c8, - 0x205e03, - 0x206b43, - 0x4e703, - 0x23cf83, - 0x14ee5c8, - 0x140fc8, - 0x12dac5, - 0xa14c8, - 0x13c3, - 0x12dac5, - 0x43fc4, - 0x3c2c8, - 0x47984, - 0x54389, - 0x14ee5ca, - 0xa14c8, - 0x6df83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x206b43, - 0x23cf83, - 0x20a683, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x2dd2c4, - 0x23cf83, - 0x3451c5, - 0x31f384, - 0x22d7c3, - 0x206b43, - 0x23cf83, - 0x2003, - 0xa7d8a, - 0xf3e84, - 0x122c86, - 0x202782, - 0x22d7c3, - 0x230ec9, - 0x233743, - 0x2ab989, - 0x220583, - 0x205e03, - 0x206b43, - 0x6bfc4, - 0x13c3, - 0x23cf83, - 0x2f7bc8, - 0x2319c7, - 0x3da885, - 0x1d29c8, - 0x1b4387, - 0xf02ca, - 0x6f54b, - 0x14d847, - 0x3e648, - 0x1a050a, - 0x11808, - 0x135b49, - 0x26847, - 0x374c7, - 0x14c8, - 0x1c0708, - 0x4028f, - 0x19a45, - 0x18b307, - 0x3d346, - 0x4e1c7, - 0x122946, - 0x95988, - 0x9e786, - 0x128f07, - 0x12ea49, - 0x10ec7, - 0xb2f09, - 0xbb909, - 0xc14c6, - 0xc4108, - 0xc2c45, - 0x7a30a, - 0xcf188, - 0xedf43, - 0xdaa88, - 0x33947, - 0x172945, - 0x5f550, - 0x4e283, - 0x6df83, - 0x128d87, - 0x22d85, - 0xf19c8, - 0x68885, - 0x18c203, - 0x7048, - 0xc0246, - 0x17c949, - 0xad447, - 0x131c0b, - 0x6d144, - 0x10e984, - 0x11848b, - 0x118a48, - 0x119647, - 0x12dac5, - 0x22d7c3, - 0x233743, - 0x228843, - 0x23cf83, - 0x23de43, - 0x220583, - 0x6df83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x8864b, + 0x202d01, + 0x201241, + 0x2018c1, + 0x2086c1, + 0x52449, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x2158c3, + 0x22f743, + 0x224943, + 0x91ec8, + 0x211d83, + 0x20ce83, + 0x71283, + 0x23f7c3, + 0x14e8c08, + 0x7608, + 0x129245, + 0xa7c88, + 0x4783, + 0x129245, + 0x45344, + 0x40f88, + 0x46cc4, + 0xbd485, + 0x52449, + 0x14e8c0a, + 0xa7c88, + 0x71003, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x21c183, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x2dbb04, + 0x23f7c3, + 0x266f85, + 0x316504, + 0x22f743, + 0x234e83, + 0x224943, + 0x205982, + 0x20ce83, + 0x23f7c3, + 0x2443, + 0xa834a, + 0x113284, + 0x119f46, + 0x24af03, + 0x22f743, + 0x234e83, + 0x224943, + 0x20ce83, + 0x23f7c3, + 0x203102, + 0x22f743, + 0x2327c9, + 0x234e83, + 0x2aca09, + 0x224943, + 0x211d83, + 0x20ce83, + 0x18cfc4, + 0x4783, + 0x23f7c3, + 0x2f2288, + 0x230287, + 0x207ac5, + 0x1d0c08, + 0x1b8b07, + 0xea74a, + 0x71acb, + 0x14d247, + 0x40148, + 0x138a8a, + 0x1cf188, + 0x142149, + 0x27207, + 0x38887, + 0x127d48, + 0x1c2908, + 0x4154f, + 0x16705, + 0x190347, + 0x3fb86, + 0x44407, + 0x119c06, + 0x96c08, + 0x9f046, + 0x120807, + 0x121409, + 0x1c0607, + 0xb2689, + 0xbbc09, + 0xc0f06, + 0xc3a48, + 0xc2385, + 0x7ba8a, + 0xcdf88, + 0xbacc3, + 0xd8d08, + 0x35087, + 0x16c105, + 0x7f950, + 0x444c3, + 0x71003, + 0x121287, + 0x196c5, + 0xebe48, + 0x67705, + 0xfb3c3, + 0x176b88, + 0x1c67c6, + 0x1ae489, + 0xaec07, + 0x1276cb, + 0x701c4, + 0x104e04, + 0x10dacb, + 0x10e088, + 0x10ec87, + 0x129245, + 0x22f743, + 0x234e83, + 0x20d343, + 0x23f7c3, + 0x23f343, + 0x224943, + 0x71003, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x8234b, 0x2000c2, - 0x202782, - 0x23cf83, - 0xa14c8, - 0x2782, + 0x203102, + 0x23f7c3, + 0xa7c88, + 0x3102, 0x2000c2, - 0x202782, + 0x203102, 0x200382, 0x2005c2, - 0x205e02, - 0x206b43, - 0x132f46, + 0x204802, + 0x20ce83, + 0x135706, 0x2003c2, - 0x3d804, + 0x3bb84, 0x2000c2, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x233743, + 0x24af03, + 0x203102, + 0x22f743, + 0x234e83, 0x200382, - 0x220583, - 0x219e43, - 0x205e03, - 0x205184, - 0x206b43, - 0x212203, - 0x13c3, - 0x23cf83, - 0x300204, - 0x207b83, - 0x220583, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x2013c3, - 0x23cf83, - 0x3bcc87, - 0x22d7c3, - 0x27c507, - 0x366486, - 0x201f83, - 0x219d03, - 0x220583, - 0x209a03, - 0x222884, - 0x3975c4, - 0x2df1c6, - 0x201d43, - 0x206b43, - 0x23cf83, - 0x3451c5, - 0x309e84, - 0x3a13c3, - 0x2c7183, - 0x2c9307, - 0x2c6985, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x52507, - 0x1667c7, - 0x1a2a05, - 0x20c882, - 0x24a0c3, - 0x20ee03, - 0x24ce83, - 0x7622d7c3, - 0x206742, - 0x233743, - 0x204183, - 0x220583, - 0x222884, - 0x37fa83, - 0x223783, - 0x205e03, - 0x205184, - 0x76602a42, - 0x206b43, - 0x23cf83, - 0x204f03, - 0x21c4c3, - 0x212bc3, - 0x2195c2, - 0x207b83, - 0xa14c8, - 0x220583, - 0x1083, - 0x21e744, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x236204, - 0x233743, - 0x220583, - 0x222884, - 0x219e43, - 0x3b7d44, - 0x3216c4, - 0x2dc3c6, - 0x205184, - 0x206b43, - 0x23cf83, - 0x213c43, - 0x251646, - 0x3540b, - 0x29f46, - 0xebe8a, - 0x11c10a, - 0xa14c8, - 0x225344, - 0x77a2d7c3, - 0x329384, - 0x233743, - 0x2aea44, - 0x220583, - 0x2067c3, - 0x205e03, - 0x206b43, - 0x6df83, - 0x23cf83, - 0x4b283, - 0x3487cb, - 0x3c94ca, - 0x3db44c, - 0xe4148, + 0x224943, + 0x214503, + 0x211d83, + 0x209c04, + 0x20ce83, + 0x2130c3, + 0x4783, + 0x23f7c3, + 0x2fca44, + 0x2050c3, + 0x224943, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x204783, + 0x23f7c3, + 0x3bd0c7, + 0x22f743, + 0x27d8c7, + 0x35df46, + 0x20a8c3, + 0x2143c3, + 0x224943, + 0x2083c3, + 0x221b84, + 0x39b5c4, + 0x30f746, + 0x202143, + 0x20ce83, + 0x23f7c3, + 0x266f85, + 0x3283c4, + 0x34fb43, + 0x2c6703, + 0x2c8d07, + 0x2c5f05, + 0x22f743, + 0x234e83, + 0x224943, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x772fc18c, + 0x4ddc7, + 0xdd286, + 0x930c7, + 0x1a29c5, + 0x206c82, + 0x38ffc3, + 0x206203, + 0x24af03, + 0x77e2f743, + 0x2037c2, + 0x234e83, + 0x2020c3, + 0x224943, + 0x221b84, + 0x201143, + 0x21a0c3, + 0x211d83, + 0x209c04, + 0x78205682, + 0x20ce83, + 0x23f7c3, + 0x209983, + 0x222f03, + 0x20cf03, + 0x210782, + 0x2050c3, + 0xa7c88, + 0x224943, + 0xd103, + 0x21f004, + 0x24af03, + 0x203102, + 0x22f743, + 0x2375c4, + 0x234e83, + 0x224943, + 0x221b84, + 0x214503, + 0x3bac04, + 0x346484, + 0x2da646, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x214e03, + 0x250e06, + 0x36b8b, + 0x25786, + 0x6da0a, + 0x112d0a, + 0xa7c88, + 0x222584, + 0x7962f743, + 0x320c84, + 0x234e83, + 0x2d7004, + 0x224943, + 0x203843, + 0x211d83, + 0x20ce83, + 0x71003, + 0x23f7c3, + 0xa1c3, + 0x349f4b, + 0x3c8bca, + 0x3da28c, + 0xe1708, 0x2000c2, - 0x202782, + 0x203102, 0x200382, - 0x22e1c5, - 0x222884, - 0x2024c2, - 0x205e03, - 0x3216c4, - 0x202642, + 0x230145, + 0x221b84, + 0x205982, + 0x211d83, + 0x346484, + 0x208ac2, 0x2003c2, - 0x202002, - 0x2195c2, - 0x4ce83, - 0x35d82, - 0x2c1f89, - 0x33f688, - 0x2294c9, - 0x21f009, - 0x2b718a, - 0x32324a, - 0x20a602, - 0x2d5e42, - 0x2782, - 0x22d7c3, - 0x22bdc2, - 0x240186, - 0x376cc2, - 0x203742, - 0x26f8ce, - 0x213b8e, - 0x281287, - 0x212ac7, - 0x251bc2, - 0x233743, - 0x220583, - 0x2191c2, + 0x202442, + 0x210782, + 0x4af03, + 0x47502, + 0x2be789, + 0x340e48, + 0x2247c9, + 0x21f909, + 0x2ab2ca, + 0x318c0a, + 0x214c42, + 0x2291c2, + 0x3102, + 0x22f743, + 0x22ca82, + 0x241446, + 0x37a202, + 0x201682, + 0x271e4e, + 0x214d4e, + 0x281447, + 0x20ce07, + 0x24f302, + 0x234e83, + 0x224943, + 0x207282, 0x2005c2, - 0x19c83, - 0x23640f, - 0x237542, - 0x355f47, - 0x2b5707, - 0x2c8c47, - 0x2d164c, - 0x2d36cc, - 0x21e404, - 0x25ea0a, - 0x213ac2, - 0x253a42, - 0x2bd1c4, + 0x14343, + 0x2377cf, + 0x238902, + 0x2b4407, + 0x36e087, + 0x2b6a07, + 0x2d198c, + 0x2d26cc, + 0x21ecc4, + 0x39f08a, + 0x214c82, + 0x251b42, + 0x2bd784, 0x200702, - 0x2af602, - 0x2d3904, - 0x212302, - 0x200b42, - 0x14903, - 0x29e807, - 0x23f2c5, - 0x20f1c2, - 0x24e144, - 0x201582, - 0x2e3ec8, - 0x206b43, - 0x3754c8, - 0x204082, - 0x21e5c5, - 0x394b06, - 0x23cf83, - 0x206a82, - 0x2f2707, - 0x2102, - 0x3a46c5, - 0x21fe85, - 0x213f82, - 0x202c02, - 0x204d4a, - 0x28320a, - 0x2801c2, - 0x29ce84, - 0x201202, - 0x20bd08, - 0x20a742, - 0x304d48, - 0x314187, - 0x315089, - 0x21ff02, - 0x31a585, - 0x36a1c5, - 0x21a2cb, - 0x2df74c, - 0x22b8c8, - 0x32d788, - 0x22c202, - 0x2a8002, + 0x2b0602, + 0x2d2904, + 0x2131c2, + 0x20e942, + 0xe943, + 0x29f0c7, + 0x23a9c5, + 0x2065c2, + 0x244384, + 0x327e02, + 0x2e1488, + 0x20ce83, + 0x379208, + 0x201fc2, + 0x21ee85, + 0x398ac6, + 0x23f7c3, + 0x207702, + 0x2eca07, + 0xda42, + 0x3a4905, + 0x321185, + 0x205d02, + 0x20ba82, + 0x2097ca, + 0x28b90a, + 0x287542, + 0x29fc44, + 0x205202, + 0x20ae48, + 0x208c02, + 0x301148, + 0x309407, + 0x30a189, + 0x2e5d02, + 0x30ffc5, + 0x36d845, + 0x2183cb, + 0x30fccc, + 0x22c588, + 0x325a48, + 0x224682, + 0x2a85c2, 0x2000c2, - 0xa14c8, - 0x202782, - 0x22d7c3, + 0xa7c88, + 0x203102, + 0x22f743, 0x200382, - 0x202642, - 0x13c3, + 0x208ac2, + 0x4783, 0x2003c2, - 0x23cf83, - 0x202002, + 0x23f7c3, + 0x202442, 0x2000c2, - 0x12dac5, - 0x78e02782, - 0x79620583, - 0x214903, - 0x2024c2, - 0x206b43, - 0x379083, - 0x79a3cf83, - 0x2ef083, - 0x283dc6, - 0x1602003, - 0x12dac5, - 0x132e0b, - 0xa14c8, - 0x793caf88, - 0x60ac7, - 0x6d807, - 0x45585, - 0xaafcd, - 0x3d142, - 0x119042, - 0xa8a0a, - 0x83047, - 0x256c4, - 0x25703, - 0x1b4904, - 0x7a205342, - 0x7a600b02, - 0x7aa02442, - 0x7ae026c2, - 0x7b20d242, - 0x7b605cc2, - 0x14c47, - 0x7ba02782, - 0x7be2eec2, - 0x7c21ed42, - 0x7c602942, - 0x213b83, - 0x16f44, - 0x2399c3, - 0x7ca0dd82, - 0x5d348, - 0x7ce05282, - 0x71d87, - 0x7d200042, - 0x7d6012c2, - 0x7da00182, - 0x7de067c2, - 0x7e205e42, - 0x7e6005c2, - 0xd8605, - 0x251e03, - 0x39ffc4, - 0x7ea00702, - 0x7ee03942, - 0x7f206ac2, - 0x7af0b, - 0x7f601442, - 0x7fe4ab82, - 0x802024c2, - 0x80605e02, - 0x80a02dc2, - 0x80e00c02, - 0x81200e82, - 0x8166cec2, - 0x81a02a42, - 0x81e09a42, - 0x82202642, - 0x82616202, - 0x82a6ef42, - 0x82e09b42, - 0xb2bc4, - 0x217a43, - 0x8320a302, - 0x836137c2, - 0x83a11b82, - 0x83e006c2, - 0x842003c2, - 0x84601002, - 0x887c7, - 0x84a13c42, - 0x84e04482, - 0x85202002, - 0x85600ec2, - 0x1aed4c, - 0x85a43982, - 0x85e28202, - 0x86203082, - 0x86606842, - 0x86a0a342, - 0x86e76c02, - 0x87205302, - 0x8760adc2, - 0x87a77742, - 0x87e77c82, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x17343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x7fb7fa83, - 0x217343, - 0x360004, - 0x2293c6, - 0x2fe843, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x308b49, - 0x235d82, - 0x3d3c43, - 0x2bbc03, - 0x202ac5, - 0x204183, - 0x37fa83, - 0x217343, - 0x2a6343, - 0x243283, - 0x245b89, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x37fa83, - 0x217343, - 0x235d82, - 0x235d82, - 0x37fa83, - 0x217343, - 0x8862d7c3, - 0x233743, - 0x21f243, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0xa14c8, - 0x202782, - 0x22d7c3, - 0x206b43, - 0x23cf83, - 0x22d7c3, - 0x233743, - 0x220583, - 0x205e03, - 0x206b43, - 0x13c3, - 0x23cf83, - 0x24ec04, - 0x202782, - 0x22d7c3, - 0x309703, - 0x233743, - 0x251184, - 0x228843, - 0x220583, - 0x222884, - 0x219e43, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x25b583, - 0x3da885, - 0x243283, - 0x207b83, - 0x13c3, - 0x202782, - 0x22d7c3, - 0x37fa83, - 0x206b43, - 0x23cf83, + 0x129245, + 0x7aa03102, + 0x7b224943, + 0x20e943, + 0x205982, + 0x20ce83, + 0x3bb643, + 0x7b63f7c3, + 0x2e9343, + 0x283206, + 0x1602443, + 0x129245, + 0x1355cb, + 0xa7c88, + 0x7ae8c588, + 0x895c7, + 0x70887, + 0x1339c5, + 0x1e00d, + 0x3f982, + 0x10e682, + 0xa910a, + 0x8b747, + 0x1bfc4, + 0x1c003, + 0x1b9084, + 0x7be048c2, + 0x7c200ac2, + 0x7c603002, + 0x7ca04182, + 0x7ce09fc2, + 0x7d207982, + 0xe747, + 0x7d603102, + 0x7da31082, + 0x7de1f642, + 0x7e207682, + 0x214d43, + 0x12984, + 0x239043, + 0x7e60e382, + 0x5ba48, + 0x7ea02ec2, + 0x4f947, + 0x7ee00042, + 0x7f200d82, + 0x7f600182, + 0x7fa03842, + 0x7fe00f42, + 0x802005c2, + 0xd6585, + 0x24f543, + 0x338544, + 0x80600702, + 0x80a01882, + 0x80e04b42, + 0x7c68b, + 0x81200c42, + 0x81a49602, + 0x81e05982, + 0x82204802, + 0x8261f382, + 0x82a00bc2, + 0x82e04fc2, + 0x8326ff42, + 0x83605682, + 0x83a04bc2, + 0x83e08ac2, + 0x84216e02, + 0x8463d2c2, + 0x84a24a82, + 0xb40c4, + 0x2163c3, + 0x84e00ec2, + 0x85210482, + 0x85602f82, + 0x85a006c2, + 0x85e003c2, + 0x86200a82, + 0x824c7, + 0x86614e02, + 0x86a023c2, + 0x86e02442, + 0x87214d02, + 0x1b030c, + 0x87644d02, + 0x87a20302, + 0x87e02742, + 0x882038c2, + 0x88600f02, + 0x88a77dc2, + 0x88e02d02, + 0x8921c902, + 0x89678882, + 0x89a79482, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x15cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x81601143, + 0x215cc3, + 0x354344, + 0x2246c6, + 0x2f8f83, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x3758c9, + 0x247502, + 0x3d31c3, + 0x2bbf03, + 0x32fdc5, + 0x2020c3, + 0x201143, + 0x215cc3, + 0x2a2c03, + 0x229143, + 0x23c689, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x201143, + 0x215cc3, + 0x247502, + 0x247502, + 0x201143, + 0x215cc3, + 0x8a22f743, + 0x234e83, + 0x21fb43, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0xa7c88, + 0x203102, + 0x22f743, + 0x20ce83, + 0x23f7c3, + 0x22f743, + 0x234e83, + 0x224943, + 0x8ace63c2, + 0x211d83, + 0x20ce83, + 0x4783, + 0x23f7c3, + 0x15c1, + 0x23d544, + 0x203102, + 0x22f743, + 0x200983, + 0x234e83, + 0x24f044, + 0x20d343, + 0x224943, + 0x221b84, + 0x214503, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x259703, + 0x207ac5, + 0x229143, + 0x2050c3, + 0x4783, + 0x203102, + 0x22f743, + 0x201143, + 0x20ce83, + 0x23f7c3, 0x2000c2, - 0x24ce83, - 0xa14c8, - 0x22d7c3, - 0x233743, - 0x220583, - 0x22fac6, - 0x222884, - 0x219e43, - 0x205184, - 0x206b43, - 0x23cf83, - 0x213c43, - 0x22d7c3, - 0x233743, - 0x206b43, - 0x23cf83, - 0x2ebc2, - 0x2b42, - 0x144de07, - 0x492c7, - 0x22d7c3, - 0x29f46, - 0x233743, - 0x220583, - 0xe7e06, - 0x206b43, - 0x23cf83, - 0x329fc8, - 0x32d5c9, - 0x341f49, - 0x34a9c8, - 0x396bc8, - 0x396bc9, - 0x323aca, - 0x35d44a, - 0x391f8a, - 0x39858a, - 0x3c94ca, - 0x3d680b, - 0x24704d, - 0x3676cf, - 0x272190, - 0x35eacd, - 0x37d58c, - 0x3982cb, - 0x6da08, - 0x147d48, - 0xb1005, - 0x1489947, - 0xcd9c5, + 0x24af03, + 0xa7c88, + 0x22f743, + 0x234e83, + 0x224943, + 0x231b06, + 0x221b84, + 0x214503, + 0x209c04, + 0x20ce83, + 0x23f7c3, + 0x214e03, + 0x22f743, + 0x234e83, + 0x20ce83, + 0x23f7c3, + 0x28002, + 0x1942, + 0x144e8c7, + 0x56107, + 0x22f743, + 0x25786, + 0x234e83, + 0x224943, + 0xe2cc6, + 0x20ce83, + 0x23f7c3, + 0x322548, + 0x325889, + 0x342f49, + 0x34c4c8, + 0x39abc8, + 0x39abc9, + 0x31ac4a, + 0x35e24a, + 0x395f8a, + 0x39c18a, + 0x3c8bca, + 0x3d588b, + 0x24638d, + 0x368e4f, + 0x276490, + 0x3605cd, + 0x3813cc, + 0x39becb, + 0x70a88, + 0xe6208, + 0x166745, + 0x14891c7, + 0xcc705, 0x2000c2, - 0x2c67c5, - 0x200b03, - 0x8c202782, - 0x233743, - 0x220583, - 0x38d5c7, - 0x20bec3, - 0x205e03, - 0x206b43, - 0x251ac3, - 0x20c243, - 0x2013c3, - 0x23cf83, - 0x259b06, - 0x21be02, - 0x207b83, - 0xa14c8, + 0x2c5d45, + 0x20e903, + 0x8e203102, + 0x234e83, + 0x224943, + 0x391807, + 0x20b003, + 0x211d83, + 0x20ce83, + 0x22c483, + 0x2130c3, + 0x20b3c3, + 0x204783, + 0x23f7c3, + 0x254c06, + 0x21a602, + 0x2050c3, + 0xa7c88, 0x2000c2, - 0x24ce83, - 0x202782, - 0x22d7c3, - 0x233743, - 0x220583, - 0x222884, - 0x205e03, - 0x206b43, - 0x23cf83, - 0x202003, - 0x492c7, - 0x131944, - 0x153fd06, + 0x24af03, + 0x203102, + 0x22f743, + 0x234e83, + 0x224943, + 0x221b84, + 0x211d83, + 0x20ce83, + 0x23f7c3, + 0x202443, + 0x56107, + 0xba42, + 0x127404, + 0x15c8f86, 0x2000c2, - 0x202782, - 0x220583, - 0x205e03, - 0x23cf83, + 0x203102, + 0x224943, + 0x211d83, + 0x23f7c3, } // children is the list of nodes' children, the parent's wildcard bit and the @@ -9395,568 +9427,576 @@ var children = [...]uint32{ 0x40000000, 0x50000000, 0x60000000, - 0x1824603, + 0x1820602, + 0x1824608, 0x1828609, - 0x182c60a, - 0x185060b, - 0x19ac614, - 0x19c466b, - 0x19d8671, - 0x19f0676, - 0x1a1067c, - 0x1a28684, - 0x1a4068a, - 0x1a58690, - 0x1a5c696, - 0x1a84697, - 0x1a886a1, - 0x1aa06a2, + 0x184c60a, + 0x19a8613, + 0x19c066a, + 0x19d4670, + 0x19ec675, + 0x1a0c67b, + 0x1a24683, + 0x1a3c689, + 0x1a5468f, + 0x1a58695, + 0x1a80696, + 0x1a846a0, + 0x1a9c6a1, + 0x1aa06a7, 0x1aa46a8, - 0x1aa86a9, - 0x1ae46aa, - 0x1ae86b9, - 0x61af06ba, - 0x21af86bc, - 0x1b406be, - 0x1b446d0, - 0x1b646d1, - 0x1b786d9, - 0x1b7c6de, - 0x1bac6df, - 0x1bc86eb, - 0x1bf06f2, - 0x1c006fc, - 0x1c04700, - 0x1c9c701, - 0x1cb0727, - 0x1cc472c, - 0x1cfc731, - 0x1d0c73f, - 0x1d20743, - 0x1d38748, - 0x1ddc74e, - 0x1fe0777, - 0x1fe47f8, - 0x20507f9, - 0x20bc814, - 0x20d482f, - 0x20e8835, - 0x20ec83a, - 0x20f483b, - 0x210883d, - 0x210c842, - 0x2128843, - 0x217884a, - 0x217c85e, - 0x2218085f, - 0x219c860, - 0x21a0867, - 0x21a4868, - 0x21c8869, - 0x2208872, - 0x220c882, - 0x62210883, - 0x2228884, - 0x224888a, - 0x2254892, - 0x2264895, - 0x2318899, - 0x231c8c6, - 0x2232c8c7, - 0x223308cb, - 0x223388cc, - 0x23948ce, - 0x23988e5, - 0x28848e6, - 0x2292ca21, - 0x22930a4b, - 0x22934a4c, - 0x22940a4d, + 0x1ae06a9, + 0x1ae46b8, + 0x61aec6b9, + 0x21af46bb, + 0x1b3c6bd, + 0x1b406cf, + 0x1b686d0, + 0x1b6c6da, + 0x1b706db, + 0x1b846dc, + 0x1b886e1, + 0x1bb86e2, + 0x1bd46ee, + 0x1bfc6f5, + 0x1c0c6ff, + 0x1c10703, + 0x1ca8704, + 0x1cbc72a, + 0x1cd072f, + 0x1d08734, + 0x1d18742, + 0x1d2c746, + 0x1d4474b, + 0x1de8751, + 0x1fec77a, + 0x1ff07fb, + 0x205c7fc, + 0x20c8817, + 0x20e0832, + 0x20f4838, + 0x20f883d, + 0x210083e, + 0x2114840, + 0x2118845, + 0x2134846, + 0x218484d, + 0x2188861, + 0x2218c862, + 0x21a8863, + 0x21ac86a, + 0x21b086b, + 0x21d486c, + 0x2214875, + 0x2218885, + 0x6221c886, + 0x2234887, + 0x225488d, + 0x2260895, + 0x2270898, + 0x232489c, + 0x23288c9, + 0x223388ca, + 0x2233c8ce, + 0x223448cf, + 0x239c8d1, + 0x23a08e7, + 0x28948e8, + 0x2293ca25, + 0x22940a4f, 0x22944a50, 0x22950a51, 0x22954a54, - 0x22958a55, - 0x2295ca56, - 0x22960a57, + 0x22960a55, 0x22964a58, - 0x22970a59, + 0x22968a59, + 0x2296ca5a, + 0x22970a5b, 0x22974a5c, 0x22980a5d, 0x22984a60, - 0x22988a61, - 0x2298ca62, - 0x22998a63, + 0x22990a61, + 0x22994a64, + 0x22998a65, 0x2299ca66, 0x229a8a67, 0x229aca6a, - 0x229b0a6b, - 0x229b4a6c, - 0x29b8a6d, + 0x229b8a6b, 0x229bca6e, - 0x229c8a6f, + 0x229c0a6f, + 0x229c4a70, + 0x29c8a71, 0x229cca72, - 0x29d4a73, - 0x2a18a75, - 0x22a38a86, - 0x22a3ca8e, - 0x22a40a8f, - 0x22a48a90, + 0x229d8a73, + 0x229dca76, + 0x29e4a77, + 0x2a28a79, + 0x22a48a8a, 0x22a4ca92, - 0x2a50a93, - 0x22a54a94, - 0x22a58a95, + 0x22a50a93, + 0x22a58a94, 0x22a5ca96, - 0x2a64a97, - 0x2a68a99, - 0x2a6ca9a, - 0x2a88a9b, - 0x2aa0aa2, - 0x2aa4aa8, - 0x2ab4aa9, - 0x2ac0aad, - 0x2af4ab0, - 0x2af8abd, - 0x2b10abe, - 0x22b18ac4, - 0x22b1cac6, - 0x22b24ac7, - 0x2c14ac9, - 0x22c18b05, - 0x2c20b06, - 0x2c24b08, + 0x2a60a97, + 0x22a64a98, + 0x22a68a99, + 0x22a6ca9a, + 0x2a74a9b, + 0x2a78a9d, + 0x2a7ca9e, + 0x2a98a9f, + 0x2ab0aa6, + 0x2ab4aac, + 0x2ac4aad, + 0x2ad0ab1, + 0x2b04ab4, + 0x2b08ac1, + 0x2b20ac2, + 0x22b28ac8, + 0x22b2caca, + 0x22b34acb, + 0x2c24acd, 0x22c28b09, - 0x2c2cb0a, - 0x2c3cb0b, - 0x2c40b0f, - 0x2c44b10, - 0x2c48b11, - 0x2c60b12, - 0x2c74b18, - 0x2c9cb1d, - 0x2cbcb27, - 0x2cc0b2f, - 0x62cc4b30, - 0x2cf4b31, - 0x2cf8b3d, - 0x22cfcb3e, - 0x2d00b3f, - 0x2d28b40, - 0x2d2cb4a, - 0x2d50b4b, - 0x2d54b54, - 0x2d68b55, - 0x2d6cb5a, + 0x2c30b0a, + 0x2c34b0c, + 0x22c38b0d, + 0x2c3cb0e, + 0x2c54b0f, + 0x2c58b15, + 0x2c5cb16, + 0x2c60b17, + 0x2c78b18, + 0x2c8cb1e, + 0x2cb4b23, + 0x2cd4b2d, + 0x2cd8b35, + 0x62cdcb36, + 0x2d10b37, + 0x2d14b44, + 0x22d18b45, + 0x2d1cb46, + 0x2d44b47, + 0x2d48b51, + 0x2d6cb52, 0x2d70b5b, - 0x2d90b5c, - 0x2dacb64, - 0x2db0b6b, - 0x22db4b6c, - 0x2db8b6d, - 0x2dbcb6e, - 0x2dc0b6f, - 0x2dc8b70, - 0x2ddcb72, - 0x2de0b77, - 0x2de4b78, - 0x2de8b79, - 0x2e58b7a, - 0x2e5cb96, - 0x2e60b97, - 0x2e80b98, - 0x2e94ba0, - 0x2ea8ba5, - 0x2ec0baa, - 0x2edcbb0, - 0x2ef4bb7, - 0x2ef8bbd, + 0x2d84b5c, + 0x2d88b61, + 0x2d8cb62, + 0x2dacb63, + 0x2dc8b6b, + 0x2dccb72, + 0x22dd0b73, + 0x2dd4b74, + 0x2dd8b75, + 0x2ddcb76, + 0x2de4b77, + 0x2df8b79, + 0x2dfcb7e, + 0x2e00b7f, + 0x2e04b80, + 0x2e74b81, + 0x2e78b9d, + 0x2e7cb9e, + 0x2e9cb9f, + 0x2eb0ba7, + 0x2ec4bac, + 0x2edcbb1, + 0x2ef8bb7, 0x2f10bbe, - 0x2f2cbc4, - 0x2f30bcb, - 0x2f50bcc, - 0x2f70bd4, - 0x2f8cbdc, - 0x2fecbe3, - 0x3008bfb, - 0x3018c02, - 0x301cc06, - 0x3034c07, - 0x3078c0d, - 0x30f8c1e, - 0x312cc3e, - 0x3130c4b, - 0x313cc4c, - 0x315cc4f, - 0x3160c57, - 0x3184c58, - 0x318cc61, - 0x31c8c63, - 0x3218c72, - 0x321cc86, - 0x3220c87, - 0x32e4c88, - 0x232e8cb9, - 0x232eccba, - 0x32f0cbb, - 0x232f4cbc, - 0x232f8cbd, - 0x232fccbe, - 0x2330ccbf, - 0x23310cc3, + 0x2f14bc4, + 0x2f2cbc5, + 0x2f48bcb, + 0x2f4cbd2, + 0x2f6cbd3, + 0x2f8cbdb, + 0x2fa8be3, + 0x300cbea, + 0x3028c03, + 0x3038c0a, + 0x303cc0e, + 0x3054c0f, + 0x3098c15, + 0x3118c26, + 0x3148c46, + 0x314cc52, + 0x3158c53, + 0x3178c56, + 0x317cc5e, + 0x31a0c5f, + 0x31a8c68, + 0x31e4c6a, + 0x3234c79, + 0x3238c8d, + 0x323cc8e, + 0x3304c8f, + 0x23308cc1, + 0x2330ccc2, + 0x3310cc3, 0x23314cc4, 0x23318cc5, 0x2331ccc6, - 0x3334cc7, - 0x3358ccd, - 0x3378cd6, - 0x39e4cde, - 0x39f0e79, - 0x3a10e7c, - 0x3bd0e84, - 0x3ca0ef4, - 0x3d10f28, - 0x3d68f44, - 0x3e50f5a, - 0x3ea8f94, - 0x3ee4faa, - 0x3fe0fb9, - 0x40acff8, - 0x414502b, - 0x41d5051, - 0x4239075, - 0x447108e, - 0x452911c, - 0x45f514a, - 0x464117d, - 0x46c9190, - 0x47051b2, - 0x47551c1, - 0x47cd1d5, - 0x647d11f3, - 0x647d51f4, - 0x647d91f5, - 0x48551f6, - 0x48b1215, - 0x492d22c, - 0x49a524b, - 0x4a25269, - 0x4a91289, - 0x4bbd2a4, - 0x4c152ef, - 0x64c19305, - 0x4cb1306, - 0x4cb532c, - 0x4d3d32d, - 0x4d8934f, - 0x4df1362, - 0x4e9937c, - 0x4f613a6, - 0x4fc93d8, - 0x50dd3f2, - 0x650e1437, - 0x650e5438, - 0x5141439, - 0x519d450, - 0x522d467, - 0x52a948b, - 0x52ed4aa, - 0x53d14bb, - 0x54054f4, - 0x5465501, - 0x54d9519, - 0x5561536, - 0x55a1558, - 0x5611568, - 0x65615584, - 0x563d585, - 0x564158f, - 0x5659590, - 0x5675596, - 0x56b959d, - 0x56c95ae, - 0x56e15b2, - 0x57595b8, - 0x57615d6, - 0x577d5d8, - 0x57915df, - 0x57ad5e4, - 0x57d95eb, - 0x57dd5f6, - 0x57e55f7, - 0x57f95f9, - 0x58195fe, - 0x5829606, - 0x583560a, - 0x587160d, - 0x587961c, - 0x588d61e, - 0x58b1623, - 0x58bd62c, - 0x58c562f, - 0x58e9631, - 0x590d63a, - 0x5925643, - 0x5929649, - 0x593164a, - 0x593564c, - 0x59d164d, - 0x59d5674, - 0x59d9675, - 0x59dd676, - 0x5a01677, - 0x5a25680, - 0x5a41689, - 0x5a55690, - 0x5a69695, - 0x5a7169a, - 0x5a7969c, - 0x5a8169e, - 0x5a996a0, - 0x5aa96a6, - 0x5aad6aa, - 0x5ac96ab, - 0x63596b2, - 0x63918d6, - 0x63bd8e4, - 0x63d98ef, - 0x63f98f6, + 0x2332ccc7, + 0x23330ccb, + 0x23334ccc, + 0x23338ccd, + 0x2333ccce, + 0x3354ccf, + 0x3378cd5, + 0x3398cde, + 0x3a04ce6, + 0x3a10e81, + 0x3a30e84, + 0x3bf0e8c, + 0x3cc0efc, + 0x3d30f30, + 0x3d88f4c, + 0x3e70f62, + 0x3ec8f9c, + 0x3f04fb2, + 0x4000fc1, + 0x40cd000, + 0x4165033, + 0x41f5059, + 0x425907d, + 0x4491096, + 0x4549124, + 0x4615152, + 0x4661185, + 0x46e9198, + 0x47251ba, + 0x47751c9, + 0x47ed1dd, + 0x647f11fb, + 0x647f51fc, + 0x647f91fd, + 0x48751fe, + 0x48d121d, + 0x494d234, + 0x49c5253, + 0x4a45271, + 0x4ab1291, + 0x4bdd2ac, + 0x4c352f7, + 0x64c3930d, + 0x4cd130e, + 0x4cd9334, + 0x24cdd336, + 0x4d65337, + 0x4db1359, + 0x4e1936c, + 0x4ec1386, + 0x4f893b0, + 0x4ff13e2, + 0x51053fc, + 0x65109441, + 0x6510d442, + 0x5169443, + 0x51c545a, + 0x5255471, + 0x52d1495, + 0x53154b4, + 0x53f94c5, + 0x542d4fe, + 0x548d50b, + 0x5501523, + 0x5589540, + 0x55c9562, + 0x5639572, + 0x6563d58e, + 0x566558f, + 0x5669599, + 0x568159a, + 0x569d5a0, + 0x56e15a7, + 0x56f15b8, + 0x57095bc, + 0x57815c2, + 0x57895e0, + 0x57a55e2, + 0x57b95e9, + 0x57d55ee, + 0x58015f5, + 0x5805600, + 0x580d601, + 0x5821603, + 0x5841608, + 0x5851610, + 0x585d614, + 0x5899617, + 0x58a1626, + 0x58b5628, + 0x58d962d, + 0x58e5636, + 0x58ed639, + 0x591163b, + 0x5935644, + 0x594d64d, + 0x5951653, + 0x5959654, + 0x595d656, + 0x59f9657, + 0x59fd67e, + 0x5a0167f, + 0x5a05680, + 0x5a29681, + 0x5a4d68a, + 0x5a69693, + 0x5a7d69a, + 0x5a9169f, + 0x5a996a4, + 0x5aa16a6, + 0x5aa96a8, + 0x5ac16aa, + 0x5ad16b0, + 0x5ad56b4, + 0x5af16b5, + 0x63796bc, + 0x63b18de, + 0x63dd8ec, + 0x63f98f7, 0x64198fe, - 0x645d906, - 0x6465917, - 0x26469919, - 0x2646d91a, - 0x647591b, - 0x663d91d, - 0x2664198f, - 0x26651990, - 0x26659994, - 0x26665996, - 0x6669999, - 0x2667199a, - 0x668199c, - 0x66a99a0, - 0x66dd9aa, - 0x66e19b7, - 0x67199b8, - 0x67399c6, - 0x72919ce, - 0x7295ca4, - 0x7299ca5, - 0x2729dca6, - 0x72a1ca7, - 0x272a5ca8, - 0x72a9ca9, - 0x272b5caa, - 0x72b9cad, - 0x72bdcae, - 0x272c1caf, + 0x6439906, + 0x647d90e, + 0x648591f, + 0x26489921, + 0x2648d922, + 0x6495923, + 0x665d925, + 0x26661997, + 0x26671998, + 0x2667999c, + 0x2668599e, + 0x66899a1, + 0x266919a2, + 0x66999a4, + 0x66a99a6, + 0x66d19aa, + 0x67099b4, + 0x670d9c2, + 0x67459c3, + 0x67659d1, + 0x72bd9d9, + 0x72c1caf, 0x72c5cb0, - 0x272cdcb1, - 0x72d1cb3, + 0x272c9cb1, + 0x72cdcb2, + 0x272d1cb3, 0x72d5cb4, - 0x272e5cb5, + 0x272e1cb5, + 0x72e5cb8, 0x72e9cb9, - 0x72edcba, + 0x272edcba, 0x72f1cbb, - 0x72f5cbc, - 0x272f9cbd, + 0x272f9cbc, 0x72fdcbe, 0x7301cbf, - 0x7305cc0, - 0x7309cc1, - 0x27311cc2, + 0x27311cc0, 0x7315cc4, 0x7319cc5, 0x731dcc6, - 0x27321cc7, - 0x7325cc8, - 0x2732dcc9, - 0x27331ccb, - 0x734dccc, - 0x7365cd3, - 0x27369cd9, - 0x73adcda, - 0x73b1ceb, - 0x73d5cec, - 0x73e1cf5, - 0x73e5cf8, - 0x73e9cf9, - 0x759dcfa, - 0x275a1d67, - 0x275a9d68, - 0x275add6a, - 0x275b1d6b, - 0x75b9d6c, - 0x7695d6e, - 0x276a1da5, - 0x276a5da8, - 0x276a9da9, - 0x276addaa, - 0x76b1dab, - 0x76dddac, - 0x76e1db7, + 0x7321cc7, + 0x27325cc8, + 0x7329cc9, + 0x732dcca, + 0x7331ccb, + 0x7335ccc, + 0x2733dccd, + 0x7341ccf, + 0x7345cd0, + 0x7349cd1, + 0x2734dcd2, + 0x7351cd3, + 0x27359cd4, + 0x2735dcd6, + 0x7379cd7, + 0x7391cde, + 0x27395ce4, + 0x73d9ce5, + 0x73ddcf6, + 0x7401cf7, + 0x740dd00, + 0x7411d03, + 0x7415d04, + 0x75d1d05, + 0x275d5d74, + 0x275ddd75, + 0x275e1d77, + 0x275e5d78, + 0x75edd79, + 0x76c9d7b, + 0x276d5db2, + 0x276d9db5, + 0x276dddb6, + 0x276e1db7, 0x76e5db8, - 0x7709db9, - 0x7715dc2, - 0x7735dc5, - 0x7739dcd, - 0x7771dce, - 0x7a21ddc, - 0x7adde88, - 0x7ae1eb7, - 0x7ae5eb8, - 0x7af9eb9, - 0x7b2debe, - 0x7b65ecb, - 0x27b69ed9, - 0x7b85eda, - 0x7badee1, - 0x7bb1eeb, - 0x7bd5eec, - 0x7bf1ef5, - 0x7c19efc, - 0x7c29f06, - 0x7c2df0a, - 0x7c31f0b, - 0x7c69f0c, - 0x7c75f1a, - 0x7c9df1d, - 0x7d1df27, - 0x27d21f47, - 0x7d31f48, - 0x7d3df4c, - 0x7d59f4f, - 0x7d79f56, - 0x7d7df5e, - 0x7d91f5f, - 0x7da5f64, - 0x7da9f69, - 0x7dc9f6a, - 0x7e71f72, - 0x7e75f9c, - 0x7e91f9d, - 0x7eb5fa4, - 0x7eb9fad, - 0x7ec1fae, - 0x7ed9fb0, - 0x7ee1fb6, - 0x7ef5fb8, - 0x7f15fbd, - 0x7f25fc5, - 0x7f31fc9, - 0x7f69fcc, - 0x803dfda, - 0x804200f, - 0x8056010, - 0x805e015, - 0x8076017, - 0x807a01d, - 0x808601e, - 0x808a021, - 0x808e022, - 0x80b2023, - 0x80f202c, - 0x80f603c, - 0x811603d, - 0x8166045, - 0x8182059, - 0x818a060, - 0x81e2062, - 0x81e6078, - 0x81ea079, - 0x81ee07a, - 0x823207b, - 0x824208c, - 0x8282090, - 0x82860a0, - 0x82b60a1, - 0x83fe0ad, - 0x84260ff, - 0x8456109, - 0x8476115, - 0x2847e11d, - 0x848611f, - 0x8492121, - 0x85a6124, - 0x85b2169, - 0x85be16c, - 0x85ca16f, - 0x85d6172, - 0x85e2175, - 0x85ee178, - 0x85fa17b, - 0x860617e, - 0x8612181, + 0x7711db9, + 0x7715dc4, + 0x7719dc5, + 0x773ddc6, + 0x7749dcf, + 0x7769dd2, + 0x776ddda, + 0x77a5ddb, + 0x7a55de9, + 0x7b11e95, + 0x7b15ec4, + 0x7b19ec5, + 0x7b2dec6, + 0x7b61ecb, + 0x7b99ed8, + 0x27b9dee6, + 0x7bb9ee7, + 0x7be1eee, + 0x7be5ef8, + 0x7c09ef9, + 0x7c25f02, + 0x7c4df09, + 0x7c5df13, + 0x7c61f17, + 0x7c65f18, + 0x7c9df19, + 0x7ca9f27, + 0x7cd1f2a, + 0x7d51f34, + 0x27d55f54, + 0x7d65f55, + 0x7d75f59, + 0x7d91f5d, + 0x7db1f64, + 0x7db5f6c, + 0x7dc9f6d, + 0x7dddf72, + 0x7de1f77, + 0x7de5f78, + 0x7e05f79, + 0x7eadf81, + 0x7eb1fab, + 0x7ecdfac, + 0x7ef1fb3, + 0x7ef5fbc, + 0x7efdfbd, + 0x7f19fbf, + 0x7f21fc6, + 0x7f35fc8, + 0x7f55fcd, + 0x7f71fd5, + 0x7f7dfdc, + 0x7f95fdf, + 0x7fcdfe5, + 0x80a1ff3, + 0x80a6028, + 0x80ba029, + 0x80c202e, + 0x80da030, + 0x80de036, + 0x80ea037, + 0x80ee03a, + 0x80f203b, + 0x811603c, + 0x8156045, + 0x815a055, + 0x817a056, + 0x81ca05e, + 0x81ea072, + 0x281ee07a, + 0x81f607b, + 0x824e07d, + 0x8252093, + 0x8256094, + 0x825a095, + 0x829e096, + 0x82ae0a7, + 0x82ee0ab, + 0x82f20bb, + 0x83220bc, + 0x846a0c8, + 0x849211a, + 0x84c2124, + 0x84e2130, + 0x284ea138, + 0x84f213a, + 0x84fe13c, + 0x861213f, 0x861e184, 0x862a187, 0x863618a, 0x864218d, - 0x864a190, - 0x8656192, - 0x8662195, - 0x866e198, - 0x867a19b, - 0x868619e, - 0x86921a1, - 0x869e1a4, - 0x86aa1a7, - 0x86b61aa, + 0x864e190, + 0x865a193, + 0x8666196, + 0x8672199, + 0x867e19c, + 0x868a19f, + 0x86961a2, + 0x86a21a5, + 0x86ae1a8, + 0x86b61ab, 0x86c21ad, 0x86ce1b0, - 0x86fa1b3, - 0x87061be, - 0x87121c1, - 0x871e1c4, - 0x872a1c7, - 0x87361ca, - 0x873e1cd, - 0x874a1cf, - 0x87561d2, - 0x87621d5, - 0x876e1d8, - 0x877a1db, - 0x87861de, - 0x87921e1, - 0x879e1e4, - 0x87aa1e7, + 0x86da1b3, + 0x86e61b6, + 0x86f21b9, + 0x86fe1bc, + 0x870a1bf, + 0x87161c2, + 0x87221c5, + 0x872e1c8, + 0x873a1cb, + 0x87661ce, + 0x87721d9, + 0x877e1dc, + 0x878a1df, + 0x87961e2, + 0x87a21e5, + 0x87aa1e8, 0x87b61ea, 0x87c21ed, 0x87ce1f0, 0x87da1f3, - 0x87e21f6, - 0x87ee1f8, - 0x87fa1fb, - 0x88061fe, - 0x8812201, - 0x881e204, - 0x882a207, - 0x883620a, - 0x884220d, - 0x8846210, - 0x8852211, - 0x886e214, - 0x887221b, - 0x888221c, - 0x889e220, - 0x88e2227, - 0x88e6238, - 0x88fa239, - 0x892e23e, - 0x893e24b, - 0x894624f, - 0x896a251, - 0x898225a, - 0x899a260, - 0x89b2266, - 0x89c626c, - 0x28a0a271, - 0x8a0e282, - 0x8a3a283, - 0x8a4628e, - 0x8a5a291, + 0x87e61f6, + 0x87f21f9, + 0x87fe1fc, + 0x880a1ff, + 0x8816202, + 0x8822205, + 0x882e208, + 0x883a20b, + 0x884620e, + 0x884e211, + 0x885a213, + 0x8866216, + 0x8872219, + 0x887e21c, + 0x888a21f, + 0x8896222, + 0x88a2225, + 0x88ae228, + 0x88b222b, + 0x88be22c, + 0x88da22f, + 0x88de236, + 0x88ee237, + 0x890e23b, + 0x8912243, + 0x8956244, + 0x895a255, + 0x896e256, + 0x89a225b, + 0x89b2268, + 0x89ba26c, + 0x89de26e, + 0x89f6277, + 0x8a0e27d, + 0x8a26283, + 0x8a3a289, + 0x28a8228e, + 0x8a862a0, + 0x8ab22a1, + 0x8ac22ac, + 0x8ad62b0, } -// max children 563 (capacity 1023) -// max text offset 30521 (capacity 32767) +// max children 571 (capacity 1023) +// max text offset 30545 (capacity 32767) // max text length 36 (capacity 63) -// max hi 8854 (capacity 16383) -// max lo 8849 (capacity 16383) +// max hi 8885 (capacity 16383) +// max lo 8880 (capacity 16383) diff --git a/vendor/modules.txt b/vendor/modules.txt index 23fa94c48..24f23944a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -8,7 +8,7 @@ github.com/alecthomas/template github.com/alecthomas/template/parse # github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d github.com/alecthomas/units -# github.com/aws/aws-sdk-go v1.28.9 +# github.com/aws/aws-sdk-go v1.34.0 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/arn github.com/aws/aws-sdk-go/aws/awserr @@ -28,6 +28,7 @@ github.com/aws/aws-sdk-go/aws/endpoints github.com/aws/aws-sdk-go/aws/request github.com/aws/aws-sdk-go/aws/session github.com/aws/aws-sdk-go/aws/signer/v4 +github.com/aws/aws-sdk-go/internal/context github.com/aws/aws-sdk-go/internal/ini github.com/aws/aws-sdk-go/internal/s3err github.com/aws/aws-sdk-go/internal/sdkio @@ -36,6 +37,8 @@ github.com/aws/aws-sdk-go/internal/sdkrand github.com/aws/aws-sdk-go/internal/sdkuri github.com/aws/aws-sdk-go/internal/shareddefaults github.com/aws/aws-sdk-go/internal/strings +github.com/aws/aws-sdk-go/internal/sync/singleflight +github.com/aws/aws-sdk-go/private/checksum github.com/aws/aws-sdk-go/private/protocol github.com/aws/aws-sdk-go/private/protocol/eventstream github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi @@ -87,7 +90,7 @@ github.com/golang/snappy github.com/hashicorp/go-version # github.com/jessevdk/go-flags v1.4.0 github.com/jessevdk/go-flags -# github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af +# github.com/jmespath/go-jmespath v0.3.0 github.com/jmespath/go-jmespath # github.com/minio/minio-go v6.0.14+incompatible github.com/minio/minio-go @@ -122,7 +125,7 @@ github.com/opencontainers/go-digest # github.com/pierrec/lz4 v2.3.0+incompatible github.com/pierrec/lz4 github.com/pierrec/lz4/internal/xxh32 -# github.com/pkg/errors v0.8.1 +# github.com/pkg/errors v0.9.1 github.com/pkg/errors # github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c github.com/xdg/scram @@ -162,7 +165,7 @@ golang.org/x/crypto/argon2 golang.org/x/crypto/blake2b golang.org/x/crypto/pbkdf2 golang.org/x/crypto/ssh/terminal -# golang.org/x/net v0.0.0-20191021144547-ec77196f6094 +# golang.org/x/net v0.0.0-20200202094626-16171245cfb2 golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts